Hoi,
ik heb eens een vraagje ivm met XSLT. Ik wil namelijk een pagina maken waar alle gebruikers op komen te staan. Dit is mij gelukt door gebruik te maken van een FormView, XmlDataSource en een XSLT. Maar nu ben ik op een "schoonheidsfoutje" gestoten.
De output ziet er als volgt uit:
Firstname: Test
Middlename: Test
LastName: Test
ID: 2
Maar zoals je in onderstaande XML kunt zien is het mogelijk dat het element Middlename leeg kan zijn en dan ziet men output er als volgt uit.
Firstname: Test
Middlename:
LastName: Test
ID:1
XML
XSLT
Pagina
Weet iemand soms hoe ik ervoor kan zorgen dat er een "/" wordt weergegeven ipv gewoon leeg?
Ik heb reeds gegoogled en ik denk dat het met een IF of WHEN (in de XSL-file) wel op te lossen valt. Maar omdat dit eerlijk gezegd 1 van de eerste keren is dat ik echt met XML en XSL werk vind ik maar geen oplossing.
Mvg F0XaL0T
ik heb eens een vraagje ivm met XSLT. Ik wil namelijk een pagina maken waar alle gebruikers op komen te staan. Dit is mij gelukt door gebruik te maken van een FormView, XmlDataSource en een XSLT. Maar nu ben ik op een "schoonheidsfoutje" gestoten.
De output ziet er als volgt uit:
Firstname: Test
Middlename: Test
LastName: Test
ID: 2
Maar zoals je in onderstaande XML kunt zien is het mogelijk dat het element Middlename leeg kan zijn en dan ziet men output er als volgt uit.
Firstname: Test
Middlename:
LastName: Test
ID:1
XML
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?xml version="1.0" encoding="utf-8" ?>
<Users>
<User>
<FirstName>Test</FirstName>
<MiddleName/>
<LastName>Test</LastName>
<UserId>1</UserId>
</User>
<User>
<FirstName>Test</FirstName>
<MiddleName>Test<MiddleName>
<LastName>Test</LastName>
<UserId>2</UserId>
</User>
</Users> |
XSLT
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Users">
<Users>
<xsl:apply-templates select="User"/>
</Users>
</xsl:template>
<xsl:template match="User">
<User>
<xsl:attribute name="FirstName">
<xsl:value-of select="FirstName"/>
</xsl:attribute>
<xsl:attribute name="MiddleName">
<xsl:value-of select="MiddleName"/>
</xsl:attribute>
<xsl:attribute name="LastName">
<xsl:value-of select="LastName"/>
</xsl:attribute>
<xsl:attribute name="UserId">
<xsl:value-of select="UserId"/>
</xsl:attribute>
</User>
</xsl:template>
</xsl:stylesheet> |
Pagina
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <asp:FormView ID="FormView1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
FirstName:
<asp:Label ID="lblFirst" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label><br />
MiddleName:
<asp:Label ID="lblMiddle" runat="server" Text='<%# Bind("MiddleName") %>'></asp:Label><br />
FirstName:
<asp:Label ID="lblLast" runat="server" Text='<%# Bind("LastName") %>'></asp:Label><br />
ID:
<asp:Label ID="lblID" runat="server" Text='<%# Bind("UserId") %>'></asp:Label><br />
</ItemTemplate>
</asp:FormView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/Users.xml" TransformFile="~/App_Data/Users.xsl"/> |
Weet iemand soms hoe ik ervoor kan zorgen dat er een "/" wordt weergegeven ipv gewoon leeg?
Ik heb reeds gegoogled en ik denk dat het met een IF of WHEN (in de XSL-file) wel op te lossen valt. Maar omdat dit eerlijk gezegd 1 van de eerste keren is dat ik echt met XML en XSL werk vind ik maar geen oplossing.
Mvg F0XaL0T
[ Voor 40% gewijzigd door Verwijderd op 16-05-2006 11:05 ]