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

Pull out all XML tags with a specific name using XSLT

我对 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 来访问所有这些。

嗯,//FOO select所有 FOO 元素和 <xsl:copy-of select="//FOO"/> 将它们复制到输出,因此您只需要

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

如果您想使用 XSLT,但您仍在努力使用 XPath 来 select 某些节点,那么我相信完成任何 XPath 教程或介绍都会有所帮助。