我有这个字符串(存储在XElement中):
<MergeFields xmlns="urn:www-xxx-com:schema.xx-calls">
<MergeField name="XAccountID" value="1234" />
<MergeField name="XDate" value="01/20/2013 10:00:00 AM" />
</MergeFields>
Mergefields将存储不同的属性。
我需要将它转换为这样的字符串:
<MergeFields>
<XAccountID>1234</XAccountID>
<XDate>01/20/2013 10:00:00</XDate>
</MergeFields>
我已经阅读过有关使用XSLT的内容,但我很难找到示例代码。 我怎么能这样做?
答案 0 :(得分:2)
我相信IBM的DeveloperWorks网站上有一些很好的XSLT教程。我建议读那些;他们应该包括例子。
通常,正确的答案是从身份变换开始。然后添加一个模板 处理特殊情况。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Identity: Copy all nodes unchanged, recursively -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- Exception: Attributes of MergeFields should be turned into elements
with the same name and value -->
<xsl:template match="MergeFields/@*">
<xsl:element name="name()"><xsl:value-of select="."/></xsl:element>
</template>
</xsl:stylesheet>