2012-03-28 7 views
0

javaでXMLを解析する方法 私は1つのXMLは、以下与えている:Javaでの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

答えて

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