如何在java中解析XML。 我在下面给出了一个XML:
<?xml version="1.0" ?>
<metabase>
<response status="SUCCESS"/>
<item>
<id>10147417040</id>
<description>
<title>What part of the constitiution states the goals?</title>
<language>English</language>
</description>
<pubDate>2012-03-27 07:25:33.0</pubDate>
</item>
<item>
<id>10147417018</id>
<description>
<title>What is the work envelope of a robot car?</title>
<language>English</language>
</description>
<pubDate>2012-03-27 07:25:33.0</pubDate>
</item>
</metabase>
我想解析这个XML并转换为以下形式:
<?xml version="1.0" ?>
<add>
<doc>
<field name="id">10147417040</field>
<field name="title">What part of the constitiution states the goals?</field>
<field name="language">English</field>
<field name="pubDate">2012-03-27 07:25:33.0</field>
</doc>
<doc>
<field name="id">10147417018</field>
<field name="title">What is the work envelope of a robot car?</field>
<field name="language">English</field>
<field name="pubDate">2012-03-27 07:25:33.0</field>
</doc>
</add>
请提供一些示例JAVA代码来执行此任务。
由于 Shariq
答案 0 :(得分:1)
执行此类XML到XML转换的最佳方法是使用XSLT。以下是满足您需求的XSLT:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()">
</xsl:template>
<xsl:template match="item">
<doc>
<field name="id">
<xsl:value-of select="id" />
</field>
<field name="title">
<xsl:value-of select="description/title" />
</field>
<field name="language">
<xsl:value-of select="description/language" />
</field>
<field name="pubDate">
<xsl:value-of select="pubDate" />
</field>
</doc>
</xsl:template>
<xsl:template match="/">
<add>
<xsl:apply-templates/>
</add>
</xsl:template>
</xsl:stylesheet>
我不熟悉Java,但我确信这是一种加载XSLT并将其应用于XML的简单方法 - 例如参见http://www.devx.com/getHelpOn/10MinuteSolution/16635/1954