这是我的source.xml:
<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
到 return 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>
最新的要求是保持缩进的原样。
我怎样才能做到这一点?
提前致谢。