2016-12-28 50 views
0

我有一個從下面的表單生成的XML從JSON到XML轉換。如何從關鍵值配對xml中生成名稱值對的xml?

<entry> 
    <string>dataset_code</string> 
    <string>GDP</string> 
</entry> 

如何將其轉換爲以下格式的XML?

<entry> 
    <dataset_code>GDP</dataset_code> 
</entry> 

注意:這裏的鍵值對(dataset_code,GDP,entry)是動態的。

任何幫助,將不勝感激!

+0

用什麼語言你想這樣做? Java,C,C++,標籤也是一種語言 – Milaci

+0

這可以通過應用xslt?如果不是的話,我更喜歡java。 – user3187932

回答

0

在XSLT,這將是實現爲:

<xsl:template match="/*"> 
    <xsl:copy> 
     <xsl:element name="{string[1]}"> 
      <xsl:value-of select="string[2]" /> 
     </xsl:element> 
    </xsl:copy> 
</xsl:template> 

請注意,如果第一個字符串不是有效的XML元素名稱,則很容易失敗。

+0

謝謝邁克爾。這只是解決了我的問題。下面是我寫的使其通用的代碼。 user3187932

0

我不是專家,但與http://www.freeformatter.com/xsl-transformer.html打我發現這個解決方案:

<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:output method="xml" indent="yes"/> 
<xsl:template match="/"> 
    <entry> 
    <xsl:text disable-output-escaping="yes">&lt;</xsl:text><xsl:value-of select="(entry/string)[1]"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text> 
    <xsl:value-of select="(entry/string)[2]"/> 
    <xsl:text disable-output-escaping="yes">&lt;</xsl:text>/<xsl:value-of select="(entry/string)[1]"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text> 
    </entry> 
</xsl:template> 
</xsl:stylesheet> 

希望它可以幫助

+0

Marco,感謝您對此回覆。它看起來工作。但我不能硬編碼「入口」文本。這也是動態的價值。對於之前沒有提到過的道歉。 – user3187932