hey leute ich hab hier wiedermal ein problem und weiß nicht was ich tun soll.
ich möchte bei der ausgabe folgendes stehen haben:
doch ich versteh nicht wie ich auf die "id" im element "ort" zugreifen kann, damit es mir den ortsnamen ausgibt.
hier die xml:
und hier die xpath datei:
ich möchte bei der ausgabe folgendes stehen haben:
Kontakt 1 (a1): Max Mustermann, wohnhaft in: ErsteStadt
Kontakt 2 (a2): Erika Musterfrau, wohnhaft in: ErsteStadt
Kontakt 3 (a3): Jane Doe, wohnhaft in: Washington, DC
Kontakt 4 (a4): John Doe, wohnhaft in: Washington, DC
Kontakt 2 (a2): Erika Musterfrau, wohnhaft in: ErsteStadt
Kontakt 3 (a3): Jane Doe, wohnhaft in: Washington, DC
Kontakt 4 (a4): John Doe, wohnhaft in: Washington, DC
hier die xml:
Code:
<?xml version="1.0" encoding="UTF-8"?> <adressbuch> <orte> <ort id="o1"> <plz>12345</plz> <name>ErsteStadt</name> </ort> <ort id="o2"> <plz>67890</plz> <plz>23456</plz> <name>ZweiteStadt</name> </ort> <ort id="o3"> <plz>56920</plz> <plz>56944</plz> <name>Washington, DC</name> </ort> </orte> <adressen> <adresse id="a1" ort="o1"> <vorname>Max</vorname> <nachname>Mustermann</nachname> <email>[email protected]</email> <erstellDatum>22.01.2011</erstellDatum> <telefonNummer> <geheimnummer/> </telefonNummer> <notiz>Hinweis <strong>fett</strong></notiz> </adresse> <adresse id="a2" ort="o1"> <vorname>Erika</vorname> <nachname>Musterfrau</nachname> <email>[email protected]</email> <erstellDatum>23.01.2011</erstellDatum> <telefonNummer> <nummer>0456 45678</nummer> </telefonNummer> <notiz>Hinweis <strong>fett</strong></notiz> <notiz>Hinweis <strong>fett</strong></notiz> </adresse> <adresse id="a3" ort="o3"> <vorname>Jane</vorname> <nachname>Doe</nachname> <email>[email protected]</email> <erstellDatum>24.01.2011</erstellDatum> <telefonNummer> <geheimnummer/> </telefonNummer> <notiz/> </adresse> <adresse id="a4" ort="o3"> <vorname>John</vorname> <nachname>Doe</nachname> <email>[email protected]</email> <erstellDatum>25.01.2011</erstellDatum> <telefonNummer> <nummer>0789 123456</nummer> </telefonNummer> <notiz/> </adresse> </adressen> </adressbuch>
und hier die xpath datei:
Code:
package dom; import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.xpath.*; public class XPathAufgabe { public static void main(String[] args) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document xmlDocument = builder.parse("src/dom/adressbuch.xml"); XPathFactory xPathFactory = XPathFactory.newInstance(); XPath xpath = xPathFactory.newXPath(); NodeList adressenNodes = (NodeList) xpath.evaluate("//adressbuch/adressen/adresse", xmlDocument, XPathConstants.NODESET); NodeList orteNodes = (NodeList) xpath.evaluate("//adressbuch/orte/ort", xmlDocument, XPathConstants.NODESET); for(int i=0; i<adressenNodes.getLength(); i++){ NodeList vornameNode = (NodeList) xpath.evaluate("vorname",adressenNodes.item(i), XPathConstants.NODESET); NodeList nachnameNode = (NodeList) xpath.evaluate("nachname",adressenNodes.item(i), XPathConstants.NODESET); String id = (String) xpath.evaluate("@id",adressenNodes.item(i), XPathConstants.STRING); System.out.println("Kontakt " + i + "("+ id + "): " + vornameNode.item(0).getTextContent()+ " " + nachnameNode.item(0).getTextContent() + ", " + "wohnhaft in: "); } } catch(Exception ex) { System.out.println(ex.getMessage()); } } }
Comment