XML Dateihandling

Hallo ich habe ein XML datei mit folgender struktur:
Code:
<menu>
   	<meal>
	   	<id>1</id>
	    <name>Magerita</name>
	    <price>5</price>
	</meal>
   	<meal>
	   	<id>2</id>
	    <name>Salami</name>
	    <price>7</price>
	</meal>	
</menu>

Ich möchte gerne die möglichkeit haben nach der id zu suchen und den preis von dem produkt zurückbekommen. Wie realisier ich dies am besten?
 
Hallo,

hier würde sich XPath anbieten:
Java:
/**
 * 
 */
package de.tutorials;

import java.io.StringReader;

import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Element;
import org.xml.sax.InputSource;

/**
 * @author Thomas.Darimont
 * 
 */
public class XPathExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        String xml = "<menu><meal><id>1</id><name>Magerita</name><price>5</price></meal>"
                + "<meal><id>2</id><name>Salami</name><price>7</price></meal></menu>";

        Element mealElement = (Element) XPathFactory.newInstance().newXPath()
                .evaluate("/menu/meal[./id/text()='2']",
                        new InputSource(new StringReader(xml)),
                        XPathConstants.NODE);
        System.out.println(mealElement.getElementsByTagName("name").item(0)
                .getTextContent());
        System.out.println(mealElement.getElementsByTagName("price").item(0)
                .getTextContent());

    }

}

Ausgabe:
Code:
Salami
7


Wobei XQuery hier auch nützlich wäre:
http://de.wikipedia.org/wiki/XQuery
http://www.datadirect.com/developer/xquery/topics/xqj_tutorial/index.ssp
http://www.oracle.com/technology/sample_code/tech/xml/xmldb/jxqi.html

Gruß Tom
 
Zurück