2014-01-21 101 views
0

我有此字符串(其被存儲在一個的XElement):XML轉換從屬性到元素

<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,但我有一個很難找到的示例代碼。 我該怎麼做?

回答

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>