stel ik maak gebruik van de volgende xml:
voor het bovenstaande xml maak ik gebruik van het onderstaande xstl:
zowel de xml als de xstl werkt prima totdat ik het volgende xml heb:
ik krijg dan het volgende resultaat:
Kan iemand mij vertellen waarom dit zo is? ik kon helaas niks vinden op het internet om mijn probleem op te kunnen lossen. wat ik eigenlijk wil als resultaat is het volgende:
dus een date element met een somedate attribute die niet bestaat of die leeg is mag niet getoond worden.
Weet iemand misschien hoe ik dit kan oplossen?
code:
1
2
3
4
5
| <?xml version="1.0" encoding="UTF-8"?> <root> <data somedate="2006-16-07"/> <data somedate="1900-01-01"/> </root> |
voor het bovenstaande xml maak ik gebruik van het onderstaande xstl:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<root>
<xsl:for-each select="/root/data">
<date>
<xsl:if test="string(/root/data/@somedate)">
<xsl:attribute name="date">
<xsl:apply-templates select="@somedate"/>
</xsl:attribute>
</xsl:if>
</date>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet> |
zowel de xml als de xstl werkt prima totdat ik het volgende xml heb:
code:
1
2
3
4
5
| <?xml version="1.0" encoding="UTF-8"?> <root> <data somedate=""/> <data somedate="1900-01-01"/> </root> |
ik krijg dan het volgende resultaat:
code:
1
2
3
4
5
| <?xml version="1.0" encoding="UTF-8"?> <root> <date/> <date/> </root> |
Kan iemand mij vertellen waarom dit zo is? ik kon helaas niks vinden op het internet om mijn probleem op te kunnen lossen. wat ik eigenlijk wil als resultaat is het volgende:
code:
1
2
3
4
| <?xml version="1.0" encoding="UTF-8"?> <root> <date date="1900-01-01"/> </root> |
dus een date element met een somedate attribute die niet bestaat of die leeg is mag niet getoond worden.
Weet iemand misschien hoe ik dit kan oplossen?