У меня есть документ xml, в котором есть несколько узлов даты, и я пытаюсь получить их значения, если значения являются допустимыми датами, в противном случае пустая строка.
XML:
<root>
<START_DATE><![CDATA[03/05/2015]]></START_DATE>
<START_DATE><![CDATA[05/05/2015]]></START_DATE>
<START_DATE><![CDATA[Online]]></START_DATE>
</root>
XSLT:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<xsl:output method="text" indent="yes" />
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()" />
</xsl:template>
<xsl:template match="START_DATE">
<xsl:copy>
<xsl:value-of select="if(string(normalize-space(.)) castable as xs:date) then normalize-space(.) else ''"></xsl:value-of>
</xsl:copy>
<xsl:text>,</xsl:text>
</xsl:template>
</xsl:transform>
Вывод:
,,,
Ожидается:
03/05/2015,05/05/2015,,
Xalan
, теперь вы удалили этот тег. Просьба уточнить. - person michael.hor257k   schedule 08.05.2015Xalan
, и я отметил его тегом. - person Beginner   schedule 08.05.2015