1
我有XML,我需要轉換爲更簡化的格式。我確信這可以用XSLT完成,但我不確定如何。在輸出元素名稱是動態的地方轉換XML?
我需要轉換:
<Fields>
<Field>
<Name>Element1</Name>
<Value>Value 1</Value>
</Field>
<Field>
<Name>Element2</Name>
<Value>Value 2</Value>
</Field>
</Fields>
到
<Fields>
<Element1>Value 1</Element1>
<Element2>Value 2</Element2>
</Fields>
這是我目前:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<xsl:copy>
<xsl:copy-of select="Fields/Field/*"/>
<xsl:apply-templates select="*[name()]"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
*重要*注意:有有效的xml元素名稱的規則。 (1)姓名不得以數字開頭。 (2)名稱不能以特殊字符(如連字符或句點)開頭。 (3)名稱不能包含除句點,連字符,下劃線和冒號以外的特殊字符。 – uL1
您可以使用雙翻譯方法 - '來防止無效名稱, $ validChars'是一個變量,它包含您想要在名稱中允許的所有字符。這雖然有點粗糙。 –
Flynn1179