2012-03-28 10 views
0

Wie XML in Java zu analysieren. Ich habe eine XML unten angegeben:XML-Parsing in JAVA, Transformation von einem Schema zu anderen

<?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> 

Ich mag diese XML analysieren und in Form konvertieren:

<?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> 

Bitte einig Beispiel-Java-Code geben, diese Aufgabe zu tun.

Dank Shariq

Antwort

1

Der beste Weg, diese Art von XML-to-XML-Transformationen zu tun ist, eine XSLT zu verwenden. Hier ist die XSLT, das tut, was Sie brauchen:

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

Ich bin nicht vertraut mit Java, aber ich bin sicher, dass hier ist eine einfache Möglichkeit, eine XSLT zu laden und es in einem XML-Anwendung - siehe zum Beispiel http://www.devx.com/getHelpOn/10MinuteSolution/16635/1954

Verwandte Themen