使用XSLT提取具有特定名称的所有XML标记

时间:2018-02-16 21:44:27

标签: xml xslt xslt-2.0 transformation

我是XSLT的新手。 我有一个看起来像

的XML
<ONE>
    <FOO>Foo Value 01</FOO>
         <TWO>
            <FOO>Foo Value 02</FOO>
            <BAR>Bar</BAR>
            <THREE>
                <FOO>Foo Value 03</FOO>
            <BAZ>Baz</BAZ>
        </THREE>
    </TWO>
    <FOO>Foo Value 04</FOO>
</ONE>

我试图从中获取FOO标签:

<FOOS>
    <FOO>Foo Value 01</FOO>
    <FOO>Foo Value 02</FOO>
    <FOO>Foo Value 03</FOO>
    <FOO>Foo Value 04</FOO>
</FOOS>

他们可以处于任何级别。 我很难通过我的xml循环来获取所有这些内容。

1 个答案:

答案 0 :(得分:0)

好吧,//FOO选择所有FOO个元素,<xsl:copy-of select="//FOO"/>将它们复制到输出中,这样您只需要

<xsl:template match="/">
  <xsl:copy-of select="//FOO"/>
</xsl:template>

如果您想使用XSLT并且仍然在努力使用XPath来选择某些节点,那么我确信通过任何XPath教程或介绍都会有所帮助。