我对包含XML的XSL变量有要求。
<xsl:variable name="file" select="document('abc.xml')"/>
abc.xml不过是一些示例xml <a>1<b>2</b>3</a>
现在,我必须修改/添加变量$文件的元素并将结果分配给另一个变量。
我的输入将是
<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>
任何人都可以帮我
将主输入文档存储到全局变量中,例如
<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>