我使用XSLT一次转换XML文件的一些不同结构。
其中一些元素的结构中包含<link></link>
元素标记,其他元素包含<feedburner:origLink></feedburner:origLink>
和<link></link>
之一,或两者都有。
我的问题是如何在<feedburner:origLink></feedburner:origLink>
标记找到时删除<link></link>
?
这就是我现在使用的,有些XML有两次<url></url>
元素标记。
<xsl:template match="feedburner:origLink | link">
<url>
<xsl:apply-templates select="node() | @*" />
</url>
</xsl:template>
答案 0 :(得分:1)
在XSLT 2.0中,您可以使用
行的解决方案<xsl:apply-templates select="(link, feedburner:origLink)[1]"/>
答案 1 :(得分:0)
一种方法是将元素与谓词匹配,该谓词指定另一个不存在:
<xsl:template match="feedburner:origLink[not(../link)] | link">
<url>
<xsl:apply-templates select="node() | @*" />
</url>
</xsl:template>