我有以下XMLXSLT刪除節點和atrribute值轉換爲元素名稱
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="somename">
<node1></node1>
<node2></node2>
</lst>
<result name="somename" count="5">
<doc>
<str name="NodeA">ValueA</str>
<str name="NodeB">ValueB</str>
<str name="NodeC">ValueC</str>
</doc>
<doc>
<str name="NodeA">ValueD</str>
<str name="NodeB">ValueE</str>
<str name="NodeC">ValueF</str>
</doc>
</result>
</response>
,我要轉換爲
<?xml version="1.0" encoding="UTF-8"?>
<response>
<doc>
<NodeA>ValueA</NodeA>
<NodeB>ValueB</NodeB>
<NodeC>ValueC</NodeC>
</doc>
<doc>
<NodeA>ValueD</NodeA>
<NodeB>ValueE</NodeB>
<NodeC>ValueF</NodeC>
</doc>
</response>
正如你所看到的LST節點被完全去除,並屬性值現在成爲節點。
首先,我用這個xslt代碼去除了第一個節點。
<?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" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="lst"/>
</xsl:stylesheet>
這給了我這個
<?xml version="1.0" encoding="UTF-8"?>
<response>
<result name="somename" count="5">
<doc>
<str name="NodeA">ValueA</str>
<str name="NodeB">ValueB</str>
<str name="NodeC">ValueC</str>
</doc>
<doc>
<str name="NodeA">ValueD</str>
<str name="NodeB">ValueE</str>
<str name="NodeC">ValueF</str>
</doc>
</result>
</response>
然後用這個XSLT從鏈接[link] Convert attribute value into element
<?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" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="response/result/doc">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="token">
<xsl:element name="{@name}">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
但它並沒有幫助。它給了我這個。
<?xml version="1.0" encoding="utf-8"?>
<doc>ValueAValueBValueC</doc>
<doc>ValueDValueEValueF</doc>
請幫我把屬性值轉換成節點的第二部分。 是否有可能讓一個xslt做這兩件事?
問題是什麼/你在哪裏卡住了? – 2013-03-15 14:00:22
您可以展示迄今爲止獲得的XSLT,因此我們可以看到/指出問題到底是什麼? – 2013-03-15 14:03:27
發佈更新。請檢查。 – user1677271 2013-03-15 14:14:10