2016-07-22 161 views
1

我需要改變以下XML:轉換XML元素爲元素相匹配的屬性名稱

<Summary> 
    <assets>54</assets> 
    <projects>471</projects> 
</Summary> 

到:

<Summary> 
    <item name="assets" value="54"></item> 
    <item name="projects" value="471"></item> 
</Summary> 

任何人可以,請幫助?

由於

+1

開始與[恆等變換(https://www.w3.org/TR/xslt#copying)。添加模板以匹配'Summary/*'。創建'item'元素('')。使用[屬性值模板](https://www.w3.org/TR/xslt#attribute-value-templates)來填充屬性值(如'name =「{name()}」')。如果您遇到問題,請返回並用代碼更新您的問題。 –

+0

這似乎屬於你的其他問題:http://stackoverflow.com/questions/38532962/transform-xml-elements-into-attributes –

+0

不,我意識到我需要不同的輸出。 – Mark

回答

1

作爲容易因爲這

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes"/> 

    <xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="/*/*"> 
    <item name="{name()}" value="{.}"/> 
    </xsl:template> 
</xsl:stylesheet>