【问题标题】:Add root element to repeated nodes in XML file using XSL使用 XSL 将根元素添加到 XML 文件中的重复节点
【发布时间】:2016-03-24 10:17:22
【问题描述】:

我的 XML 文件有重复的节点,但没有如下的根元素:

<my-element>AAA</my-element>
<my-element>BBB</my-element>
<my-element>CCC</my-element>

我想用 root 生成 XML,如下所示:

<my-root>
    <my-element>AAA</my-element>
    <my-element>BBB</my-element>
    <my-element>CCC</my-element>
</my-root>

我输入了以下代码:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  <my-root>
        <xsl:for-each select="*">
            <xsl:copy-of select="."/>
        </xsl:for-each>
  </my-root>
</xsl:stylesheet>

但我收到错误,因为 XML 格式不正确:

The markup in the document following the root element must be well-formed.

我知道 Input 应该有根元素。但是有没有办法使用 XSL 为没有根的重复元素设置根元素?

【问题讨论】:

    标签: xml xslt xslt-1.0 xslt-2.0 root-node


    【解决方案1】:

    您的输入不是格式正确的 XML 文档,这就是您收到此错误的原因。但是,它可以被视为一个节点集。

    因此,根据所使用的 XSLT 处理器,您可能能够以某种方式将节点集作为参数传入,但没有“标准方式”可以做到这一点。

    但是,将输入文档包装到某个元素中并在之后处理它可能更简单,例如将 &lt;root&gt; + file-content + &lt;/root&gt; 连接到一个临时文件中,并将其用作转换的输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多