0
我對XSLT有所瞭解,並試圖在其他XML中轉換XML。使用XSLT將標記XML轉換爲XML
源XML是類似的東西:
<NoticeContent>
<Version> 1.0 </Version>
<Publisher>me</Publisher>
<Specification>1</Specification>
<Instance>1</Instance>
<NewState>10</NewState>
<Info>
<SDTInInfoExtra>
<Name> Client</Name>
<Value> 1 </Value>
</SDTInInfoExtra>
<SDTInInfoExtra>
<Name> LocalId </Name>
<Value>10 </Value>
</SDTInInfoExtra>
</Info>
</NoticeContent>
和預期:
<?xml version="1.0" encoding="UTF-8"?>
<NoticeContent>
<Version></Version>
<Timestamp></Timestamp>
<Publisher></Publisher>
<Instance></Instance>
<NewState></NewState>
<Info>
<Characteristic name="Client" value="1" />
<Characteristic name="LocalId" value="10" />
</Info>
</NoticeContent>
我用下面的XSL嘗試:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="Info">
<xsl:for-each select="SDTInInfoExtra">
<xsl:value-of select="Name" />
<xsl:value-of select="Value" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
問題正試圖轉換標籤,如:
<SDTInInfoExtra>
<Name> LocalId </Name>
<Value>10 </Value>
</SDTInInfoExtra>
到:
<Characteristic name="Client" value="1" />
非常感謝您的幫助!
謝謝!我發現另一個解決方案使用:「屬性名稱」,但你的更短,更好。 –