如何放置"and"条件以从 xslt 中删除 xml 元素



我是 XSLT 的新手,并且根据 XSLT 中应用的条件获得了从 XML 文件中删除元素的条件。我必须根据同一属性的 2 个条件删除 en 元素。

这是我的虚拟代码:

<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>

<xsl:template match="cdm:attributeList/cdm:attribute[cdm:attributeName = 'format'] and cdm:attributeList/cdm:attribute[cdm:attributeValue = 'XYZ']" />

运行XSLT文件时,出现以下错误: 1. 额外的非法代币:"和" 2. "排除结果前缀"属性不允许在 XSL:输出元素上!

有人可以帮我解决这个问题吗? 谢谢。

模板匹配条件不正确,匹配模板时不允许使用and运算符。您需要修改模板匹配条件,如下所示,该条件对应于所需条件的组合。

<xsl:template match="cdm:attributeList/cdm:attribute[cdm:attributeName = 'format'][cdm:attributeValue = 'XYZ']" />

对于exclude-result-prefixes的第二期,它是<xsl:stylesheet>的属性,而不是<xsl:output>的属性。因此,如果您不希望输出节点具有cdm前缀,请按如下所示修改<xsl:stylesheet>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:cdm="http://someurl" exclude-result-prefixes="cdm">

相关内容

  • 没有找到相关文章

最新更新