【发布时间】:2014-06-11 22:27:59
【问题描述】:
我有一些 XML 需要转换以删除双标签。
原来我用的是:
<xsl:template match="*[name()=name(../..)]"></xsl:template>
<xsl:template match="*[name()=name(../../..)]"></xsl:template>
<xsl:template match="*[name()=name(..)]">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
它们一起删除了两个同名标签的内部。但这只有在只有一个内部标签时才有效。
我有:
<a>
<a>
<b>xxxx</b>
<c>xxxx</c>
</a>
<a>
<b>yyyy</b>
<c>yyyy</c>
</a>
</a>
我想结束:
<a>
<b>xxxx</b>
<c>xxxx</c>
</a>
<a>
<b>yyyy</b>
<c>yyyy</c>
</a>
而不是:
<a>
<b>xxxx</b>
<c>xxxx</c>
<b>yyyy</b>
<c>yyyy</c>
</a>
我对 XSL 转换和搜索语法知之甚少,希望有人能帮助我。
【问题讨论】:
-
您要求的输出不是格式良好的 XML(缺少根元素)。你确定这就是你想要的吗?
-
是的。以上是sn-p。 不是根元素。感谢您指出了这一点。 大约有三四层深
标签: xslt