无论上面的内容是什么,我都希望使用xslt从我的xml文件中仅检索<a>
的{{1}}子级
但是,我得到了xml中的所有元素(而不仅仅是我感兴趣的元素)。 例如,如果我有:
<b>
或者只是:
<x>
<z>
<b>
<a>my element </a>
</b>
</z>
</x>
我想恢复:my元素
<x>
<b>
<a>my element </a>
</b>
</x>
答案 0 :(得分:1)
我只想从我的xml中检索
<a>
的{{1}}子级 不管上面是什么,都带有xslt文件
你很近。使用:
<b>
请注意:覆盖具有空模板(无输出)的文本节点的内置规则。只需使用完全匹配的规则输出所需的内容即可。
但是,我得到了xml中的所有元素
这句话很奇怪,因为您使用的是<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text"/>
<xsl:template match="text()"/>
<xsl:template match="b/a">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
输出方法...
答案 1 :(得分:0)
奇怪的是,您事先不知道输入XML的结构。无论如何:
<xsl:template match="/">
<xsl:value-of select="//a" />
</xsl:template>
将检索a
元素的值,无论它位于输入XML文档层次结构中的何处。
要将其限制为a
的子元素b
,请使用:
<xsl:value-of select="//b/a" />