0

XMLファイルにノードが繰り返されていますが、次のようにルート要素がありません:

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

次のようにルートで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.

入力にはルート要素が必要であることはわかっています。しかし、XSL を使用してルートなしで繰り返される要素のルート要素を設定する方法はありますか?

4

1 に答える 1

0

入力が整形式の XML ドキュメントではないため、このエラーが発生します。ただし、ノードセットと見なすこともできます。

したがって、使用する XSLT プロセッサによっては、何らかの方法でノード セットをパラメータとして渡すことができる場合がありますが、それを行う「標準的な方法」はありません。

ただし、入力ドキュメントをいくつかの要素にラップし、後でこれを処理する方がおそらく簡単です。たとえば、concat <root>+ file-content +</root>一時ファイルに変換し、それを変換の入力として使用します。

于 2016-03-24T10:26:13.367 に答える