0
我要删除元素d
和评论<!-- d -->
当家长有属性c="string1"
XSLT:删除一个孩子时,父母有一个属性
输入:
<a>
<b c="string1">
<!-- d -->
<d>
<e/>
</d>
<f/>
</b>
<b c="string2">
<!-- d -->
<d>
<e/>
</d>
<f/>
</b>
</a>
所需的输出:
<a>
<b c="string1">
<f/>
</b>
<b c="string2">
<!-- d -->
<d>
<e/>
</d>
<f/>
</b>
</a>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<!-- Identity transform -->
<xsl:template match="@*|node()" name="identity">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- Those templates do not work -->
<xsl:template match="d[???]" />
<xsl:template match="comment()="d" />
</xsl:stylesheet>
你想要的平等表达式是'。 ='d''。不要忽视'd'两边的空间。 –
此外,使用普通路径表达式代替祖先轴上的谓词表达式测试节点更为传统。例如,'match =“b [@ c ='string1']/d”'。 –