尝试使用 xslt 删除与兄弟节点文本匹配的 Xml 节点
我的 xml 如下所示
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:map="http://www.w3.org/2005/xpath-functions/map">
<row>
<Name>Africa</Name>
</row>
<row>
<Name>USA</Name>
</row>
<row>
<Name>Mexico</Name>
</row>
<row>
<Name>Canada</Name>
</row>
<row>
<Name>Malaysia</Name>
</row>
<row>
<Name>Africa</Name>
</row>
<row>
<Name>Mexico</Name>
</row>
<row>
<Name>Bangladesh</Name>
</row>
</root>`
我需要的输出如下
`<?xml version="1.0" encoding="UTF-8"?>
<root >
<row>
<Name>USA</Name>
</row>
<row>
<Name>Canada</Name>
</row>
<row>
<Name>Malaysia</Name>
</row>
<row>
<Name>Bangladesh</Name>
</row>
</root>
` 尝试了下面的 xslt,但在输出 xml 代码中也看到了非洲和墨西哥。我希望将这两个重复节点以及具有相同值的原始节点一起从输出中删除
`<xsl:stylesheet version="2.0"
<xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="row[.=preceding-sibling::row/.]"/>
</xsl:stylesheet>`
尝试了上述 xslt 但仍然在输出中看到非洲和墨西哥节点。
请帮我删除输出中的这些节点。`
以下是一个简单的方法:
XSLT 2.0
这是另一个:
XSLT 1.0