如何在XSLT 2.0中使用CDATA应用正则表达式

时间:2017-07-14 20:21:40

标签: xslt-2.0

我正在使用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>

但它不起作用,我该怎么办?

0 个答案:

没有答案