這裏是我的source.xml:XSLT:如何使用一個變量作爲查找更新節點
<entries>
<entry path="/folder/abc.txt">
<a>abc</a>
<b>baz</b>
</entry>
<entry path="/other/def.txt">
<a>foo</a>
<b>bar</b>
</entry>
</entries>
我的XSLT是這樣的:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="lookup">
<pair>
<key>/folder/abc.txt</key>
<value>/other/folder/abc.txt</value>
</pair>
<pair>
<key>/other/def.txt</key>
<value>/other/folder/misc/def.txt</value>
</pair>
</xsl:variable>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
因此我可以重現我的源XML。我想要更新path
使用變量lookup
(其中path
應匹配key
返回value
)。
最後的結果將是:
<entries>
<entry path="/other/folder/abc.txt">
<a>abc</a>
<b>baz</b>
</entry>
<entry path="/other/folder/misc/def.txt">
<a>foo</a>
<b>bar</b>
</entry>
</entries>
最新的要求是準確地保持縮進,因爲這是。
我該如何做到這一點?
在此先感謝。