通过XSLT转换解析XML

时间:2013-06-19 17:57:25

标签: xml parsing xslt xml-parsing

我有一些这种格式的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转换来实现,或者我是否必须编写自己的解析器?

1 个答案:

答案 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>