2

タグの属性が他のxmlファイルのsrcであるxmlファイルがあります。

 <a>
    <b>
       <c src="other1.xml" name="other1"></c>
       <c src="other2.xml" name="other2"></c>
       <c src="other3.xml" name="other3"></c> 
   </b>
 </a>

このxmlファイルの内容を次の形式に変更したい

<a>
    <b>
       <other1> content of other1.xml </other1>
       <other2> content of other2.xml </other2>
       <other3> content of other3.xml </other3>
   </b>
</a>

xsl:variable を使用して src の値を格納しようとしましたが、エラーが発生しています。

誰かが解決策を提案してください....ヒントもいただければ幸いです

4

1 に答える 1

4

これはそれを行う必要があります:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

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

  <xsl:template match="c">
    <xsl:element name="{@name}">
      <xsl:apply-templates select="document(@src)" />
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

次のファイルを other1.xml、other2.xml、および other3.xml として使用します。

<I xmlns="hello">
  <am some="" xml="" />
</I>


<I xmlns="hello">
  <amAlso xml="" />
</I>


<I>
  <am xml="as well" />
</I>

サンプル XML を入力として実行すると、結果は次のようになります。

<a>
  <b>
    <other1>
      <I xmlns="hello">
        <am some="" xml="" />
      </I>
    </other1>
    <other2>
      <I xmlns="hello">
        <amAlso xml="" />
      </I>
    </other2>
    <other3>
      <I>
        <am xml="as well" />
      </I>
    </other3>
  </b>
</a>
于 2013-03-12T13:51:08.010 に答える