xml - 如何将 XML 文档的树结构分解为所需的结构..?

标签 xml xslt

编写 XSLT 来实现我想要的输出对我来说是一个巨大的挑战。

这是我的XML输入..我正在测试..

<aaa id="1">
  <bbb id="2">text1</bbb>
  <ccc>text2</ccc>
  <ddd id="3">
    <eee att="4d">text3</eee>
    <fff>
      <ggg att="3d">
        <yyy>text4</yyy>
        <iii attr="jj"/>
      </ggg>
    </fff>
    <sss>
      <ttt info="Y">
        <nnn delete="N">
          <mmm>text5</mmm>
        </nnn>
      </ttt>
    </sss>
  </ddd>
</aaa>

所需的输出:

<root>
  <aaa id="1"/>
  <bbb id="2">text1</bbb>
  <ccc>text2</ccc>
  <ddd id="3"/>
  <eee att="4d">text3</eee>
  <fff/>
  <ggg att="3d"/>
  <yyy>text4</yyy>
  <iii attr="jj"/>
  <sss/>
  <ttt info="Y"/>
  <nnn delete="N"/>
  <mmm>text5</mmm>
</root>

我无法编写通用代码..我的意思是,我的代码必须能够为具有不同标签名称的不同XML文件提供类似的输出..

最佳答案

类似这样的吗?

<xsl:template match="/">
  <root>
    <xsl:apply-templates select="*"/>
  </root>
</xsl:template>
<xsl:template match="*">
  <xsl:copy>
    <xsl:copy-of select="@*|text()"/>
  </xsl:copy>
  <xsl:apply-templates select="*"/>
</xsl:template>

关于xml - 如何将 XML 文档的树结构分解为所需的结构..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1900184/

相关文章:

java - 网络服务 : How to store mal-formed XML in webservices?

javascript - 不区分大小写的 XPath contains() 可能吗?

php - 将 CDATA 添加到 xml 节点

c# - 企业配置思路

xml - 在 xslt 期间保留字符实体

javascript - 使用 jquery mobile 显示 XML - 性能?

java - XPath 在java中选择文档中具有指定名称的所有节点

xslt - XSL-FO- 指定条件可见性

xml - 如何使 XMLDOMDocument 包含 XML 声明?

XML 映射器... XE2