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 回答