0

xml を含む xsl 変数が必要です。

<xsl:variable name="file" select="document('abc.xml')"/>

abc.xml はサンプル xml にすぎません<a>1<b>2</b>3</a>

ここで、変数 $file の要素を変更/追加し、結果を別の変数に代入する必要があります..

私の入力は

<Service name="CBI" detailedLog="false">
    <PolicyRules type="default">
        <EndPoints>
            <EndPoint source="Src" target="ET" serviceoperation="AV01">
                <Url>http://firstbackend.com</Url>
            </EndPoint>
            <EndPoint source="Src" target="ET" serviceoperation="PV01">
                <Url>http://secondbackend</Url>
            </EndPoint>
        </EndPoints>
    </PolicyRules>
</Service>

$file と一緒にタグを取得する必要があります。次の出力が必要です。

<a>1<b>2</b>
<Url>http://firstbackend.com</Url>
<Url>http://secondbackend</Url>
3</a>

誰でも私を助けてくれませんか

4

1 に答える 1

1

メインの入力ドキュメントをグローバル変数に格納します。

<xsl:variable name="main-doc" select="/"/>

次に、変換する要素のテンプレートを作成します。

<xsl:template match="a">
  <xsl:copy>
    <xsl:copy-of select="b | b/preceding-sibling::node()"/>
    <xsl:copy-of select="$main-doc//Url"/>
    <xsl:copy-of select="b/following-sibling::node()"/>
  </xsl:copy>
</xsl:template>

次に、テンプレートを適用し、変数に保存します(必要な場合)。

<xsl:variable name="rtf1">
  <xsl:apply-templates select="$file/node()"/>
</xsl:variable>

次に、その変数を使用して結果を出力します。

  <xsl:template match="/">
    <xsl:copy-of select="$rtf1"/>
  </xsl:template>
于 2012-10-31T10:13:03.717 に答える