我正在使用XSLT 2.0的正则表达式来验证XML,而且我不知道如何使用像这样的XML的元素CDATA验证字段:
<cac:Item>
<cbc:Description><![CDATA[ ]]></cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>8510</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
Mi XSLT是:
<xsl:if test='not(matches(cac:Item/cbc:Description,"^.{1,250}$"))'>
此表达式返回false,因为元素cbc:Description有15个字符,但我只想验证CDATA中的元素。我试过这个模板:
<xsl:template name="valueCDATA" match="text()">
<xsl:param name="node"/>
<xsl:value-of select="$node"/>
</xsl:template>
<xsl:variable name="getCDATA">
<xsl:call-template name="valueCDATA">
<xsl:with-param name="node" select="cac:Item/cbc:Description"/>
</xsl:call-template>
</xsl:variable>
但它不起作用,我该怎么办?