我有一些这种格式的XML
<items>
<item>
<float>0.75</float>
<string>NAME</string>
<string>Bob</string>
<string>CREATION_TIME</string>
<timestamp>2012-11-01 00:03:08</timestamp>
<string>OCCUPATION</string>
<null />
</item>
</items>
我想将其转换为这样的格式
<item>
<NAME>Bob</NAME>
<CREATION_TIME>2012-11-01 00:03:08</CREATION_TIME>
<OCCUPATION></OCCUPATION>
</item>
是否可以通过普通的XSLT转换来实现,或者我是否必须编写自己的解析器?
答案 0 :(得分:2)
<xsl:template match="item">
<xsl:copy>
<xsl:apply-templates select="string[position() mod 2 = 1]"/>
</xsl:copy>
</xsl:template>
<xsl:template match="string">
<xsl:element name="{.}">
<xsl:value-of select="following-sibling::*[1]"/>
</xsl:element>
</xsl:template>