Hallo zusammen,
ich möchte gerne eine XML-Datei mit XPath und JDOM nach Element-Werten ausgeben lassen. Dazu folgende Klasse.
Ich habe JDOM 2.0.5 im Classpath installiert und Eclipse zeigt mir die Klasse "XPath" als veraltet an. Welche Alternative habe ich, die Element-Inhalte und Attribute über Methoden zu erhalten ohne den Einsatz der Klasse XPath? Welche Klasse und welche Methoden müsste ich stattdessen unter XPath verwenden?
Die XML-Datei sieht so aus
[XML]<?xml version="1.0" encoding="UTF-8"?>
<costcalculator>
<city name="München">
<distance>221354</distance>
<duration>141</duration>
<ticket>547.00</ticket>
<hotel>56.65</hotel>
<flightcost>108.54</flightcost>
</city>
<city name="Frankfurt">
<distance>204269</distance>
<duration>7450</duration>
<ticket>0</ticket>
<hotel>0</hotel>
<flightcost>0</flightcost>
</city>
<city name="Hannover">
<distance>513256</distance>
<duration>17214</duration>
<ticket>250.00</ticket>
<hotel>0</hotel>
<flightcost>0</flightcost>
</city>
<city name="Mainz">
<distance>3800</distance>
<duration>17811</duration>
<ticket>47.89</ticket>
<hotel>48.00</hotel>
<flightcost>0.00</flightcost>
</city>
</costcalculator>
[/XML]
Vielen Dank!
Sherry
ich möchte gerne eine XML-Datei mit XPath und JDOM nach Element-Werten ausgeben lassen. Dazu folgende Klasse.
Java:
package com.sherry.xml;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.plaf.basic.BasicBorders.ToggleButtonBorder;
import org.jdom2.Attribute;
import org.jdom2.Content;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.xpath.XPath;
public class SearchElementsXML {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws JDOMException, IOException {
String target = "Hannover";
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File("resources/city.xml");
Document doc = (Document) builder.build(xmlFile);
List<Element> nodes = (List<Element>) XPath.selectNodes(doc, "/costcalculator/city");
for (Element element : nodes) {
if (target.equals(element.getAttributeValue("name"))) {
System.out.println(element.getAttributeValue("name"));
System.out.println(element.getChildText("ticket") + " EUR");
}
}
}
}
Ich habe JDOM 2.0.5 im Classpath installiert und Eclipse zeigt mir die Klasse "XPath" als veraltet an. Welche Alternative habe ich, die Element-Inhalte und Attribute über Methoden zu erhalten ohne den Einsatz der Klasse XPath? Welche Klasse und welche Methoden müsste ich stattdessen unter XPath verwenden?
Die XML-Datei sieht so aus
[XML]<?xml version="1.0" encoding="UTF-8"?>
<costcalculator>
<city name="München">
<distance>221354</distance>
<duration>141</duration>
<ticket>547.00</ticket>
<hotel>56.65</hotel>
<flightcost>108.54</flightcost>
</city>
<city name="Frankfurt">
<distance>204269</distance>
<duration>7450</duration>
<ticket>0</ticket>
<hotel>0</hotel>
<flightcost>0</flightcost>
</city>
<city name="Hannover">
<distance>513256</distance>
<duration>17214</duration>
<ticket>250.00</ticket>
<hotel>0</hotel>
<flightcost>0</flightcost>
</city>
<city name="Mainz">
<distance>3800</distance>
<duration>17811</duration>
<ticket>47.89</ticket>
<hotel>48.00</hotel>
<flightcost>0.00</flightcost>
</city>
</costcalculator>
[/XML]
Vielen Dank!
Sherry
Zuletzt bearbeitet: