这里是源xml的摘录:
<text key="#OK" default="TEST">
<lang id="de" value="i.O." />
<lang id="en" value="OK" />
<lang id="cz" value="ak" />
<lang id="dk" value="OK" />
</text>
我想转换此文档,以便在每个text
元素中使用lang
属性“ch”和id
属性的新value
元素插入文本元素的default
attritbute的内容。
结果应如下所示:
<text key="#OK" default="TEST">
<lang id="de" value="i.O." />
<lang id="en" value="OK" />
<lang id="cz" value="ak" />
<lang id="dk" value="OK" />
<lang id="ch" value="TEST" />
</text>
非常非常感谢任何正确方向的推动。
答案 0 :(得分:1)
这样做:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
<lang id="ch" value="{@default}" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
在样本输入上运行时,结果为:
<text key="#OK" default="TEST">
<lang id="de" value="i.O." />
<lang id="en" value="OK" />
<lang id="cz" value="ak" />
<lang id="dk" value="OK" />
<lang id="ch" value="TEST" />
</text>