假设我们有一个xml树:
<root>
<a>
<b>
<c>
<d />
</c>
</b>
</a>
</root>
所需的输出:
<root>
<a>
<b>
<c>
</c>
</b>
</a>
</root>
即如何在不包含<d />
节点的情况下选择整个 xml树?
答案 0 :(得分:0)
XPath供选择。无法从输入XML中选择所需的输出。
XSLT用于转换。您可以通过身份转换加上模板来抑制d
元素,从而轻松地将输入XML转换为输入XML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- By default, copy nodes to output -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- But suppress d elements -->
<xsl:template match="d"/>
</xsl:stylesheet>
答案 1 :(得分:0)
首先选择类型为d的节点
.//*[d]
然后使用它选择除d个节点以外的所有内容
.//*[not(d)]