Probleme mit XPath bei Java

M

Monsterbacke

Gast
Hallo!
Ich habe folgendes Problem beim Auslesen einer XML-Datei aus Java mittels XPath. Ich habe eine XML-Datei, die ungefähr so aussieht:
Java:
<kunde nr="100">
	
		<name>
			<anrede>Herr</anrede>
			<vorname>Hans</vorname>
                        <vorname>Peter</vorname>
			<nachname>Lustig</nachname>
		</name>
</kunde>
Das blöde ist jetzt, dass manche Kunden nur einen Vornamen haben und andere zwei. Durch die XPath Abfrage "/kunde//vorname/text()" werden mir in Java jetzt aber "Hans" und "Peter" als zwei getrennte Vornamen ausgegeben, also quasi von zwei verschiedenen Leuten. Ich lasse mir nämlich später die ganzen Vornamen in einer Liste speichern, d.h. es sollte so sein, dass "Hans Peter" ein String ist und nicht zwei getrennte. Kann ich die XPath Abfrage irgendwie so verändern, dass mein Vorhaben funktioniert?
 

sylo

Bekanntes Mitglied
Hi

mein Vorschlag wäre, nicht nach dem Text zu suchen, sondern nach dem Knoten Vornamen /kunde//vorname. hier bekommst du dann eine Liste von Vornamen und diese kannst du dann, bevor du sie speicherst, zusammensetzten.

Grüße
sylo
 
M

Monsterbacke

Gast
Wie meinst du das mit dem Zusammensetzen? Wie funktioniert das bzw. wie finde ich überhaupt heraus, ob zwei Vornamen zu demselben Namen gehören?
 

sylo

Bekanntes Mitglied
HI

also wenn ich einen Xpath ausdruck brauche mache ich sowas:
Java:
XPathExpression expr = xpath.compile(/kunde//vorname);
Object result = expr.evaluate(xmldocument, XPathConstants.NODESET);

Nodes nodes = (NodeList) result;

Jetzt hast du eine Liste von Knoten, die nur aus vorname bestehen sollte. Dann kannst du ne Schleife bauen in der du die Liste durchgehst und alle Text-Werte der Vornamen zusammensetzt und diese dann abspeicherst.

Mir fällt aber gerade auf dass du wohl eine Lösung wolltest, mit der man direkt mit dem XPath Ausdruck diesen zusammengesetzten String bekommt. Ist das Richtig?
Wenn ja weiß ich da leider keine Antwort drauf. Aber so wie oben erklärt sollte es funktionieren.

Grüße
sylo
 
M

Monsterbacke

Gast
Wenn das nicht als XPath Ausdruck geht, ist das nicht so schlimm.
Aber mein Java-Code sieht eigentlich auch so aus wie deiner. Nur statt "Nodes" meinst du wahrscheinlich "NodeList", oder? Sonst würde der Cast auch keinen Sinn ergeben.
Aber ich sehe gerade irgendwie immer noch nicht, wie das mein Problem lösen kann. Wenn ich zwei Kunden hätte, wobei einer "Hans Peter" heißt und der andere "Klaus", dann würde die Liste ja aus drei Knoten bestehen, nämlich "Hans", "Peter", "Klaus". Wie finde ich denn nun heraus, dass "Hans Peter" zusammengehört?
 

sylo

Bekanntes Mitglied
Hi

Nur statt "Nodes" meinst du wahrscheinlich "NodeList", oder? Sonst würde der Cast auch keinen Sinn ergeben.
Sorry. meinte natürlich NodeList

Ok. verstehe dein Problem. Ich denke dann musst du ein Schritt zurück und mit dem Xpath die Kunden ermitteln. und dann die Liste Knoten für Knoten durchgehen und dann den String zusammensetzen.

also sowas in die Richtung:
Java:
XPathExpression expr = xpath.compile(//kunde);
Object result = expr.evaluate(xmldocument, XPathConstants.NODESET);
 
NodesList nodes = (NodeList) result;

for(int i=0; i < nodes.getLength(); i++){
   NodeList childOfKunde = nodes.item(i).getChildNodes();
   for (int j = 0; j < childOfKunde.getLength(); j++){
      if(childOfKunde.item(j).getNodeName.equals("vorname")){
         //Hier im string speichern
      }
   }
}

Irgendwie habe ich das gefühl dass es wohl eine bessere Lösung gibt. :)
Aber fällt mir auf die schnelle nur das ein.

Grüße
sylo
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kirby.exe Probleme mit XML XPATH Select XML & JSON 3
N Probleme bei der Formatierung beim Einfügen und löschen über DOM XML & JSON 7
G Probleme mit Jsoup in .jar File XML & JSON 11
K JAX-WS Bindin-Probleme XML & JSON 1
B Probleme mit RelativeLayout XML & JSON 1
L Jackson JSON: Probleme beim einlesen XML & JSON 1
K XOM Builder Probleme XML & JSON 3
N Jsoup: PHP-Tags bereiten Probleme? XML & JSON 2
M SAX-Parsing Probleme XML & JSON 23
hdi Probleme beim Erstellen einer XML XML & JSON 7
F Probleme beim html parsen mit tagsoup XML & JSON 4
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
H JAXB Probleme beim Unmarshalling XML & JSON 3
G Probleme mit XML und JTree XML & JSON 9
klattiator Probleme mit Codierung XML & JSON 3
S Probleme beim erstellen einer Jar XML & JSON 12
T XML und Sonderzeichen, Probleme mit ASP.NET Server XML & JSON 2
G Probleme mit Namespaces XML & JSON 5
D Probleme mit Eclipse Modeling Framework (EMF) XML & JSON 2
S PDF Erzeugung - Probleme mit der XML Datei bei Schema-Infos XML & JSON 2
C SAX Probleme beim lesen XML & JSON 4
F JAXB - Nachträglich hinzugefügter Code macht Probleme XML & JSON 2
D Probleme beim SAX parsing XML & JSON 4
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
F Unmarshall Probleme XML & JSON 5
byte Probleme beim Parsen von XHTML-Datei XML & JSON 4
R Probleme mit Transformer und StreamResult XML & JSON 4
C Probleme mit Include XML & JSON 10
C POI + jXLS Probleme XML & JSON 3
B DOM DTD laden abschalten, Probleme mit Doctypes und PIs XML & JSON 2
S Probleme mit Jdom XML & JSON 3
G probleme mit package XML & JSON 12
M Probleme mit String XML & JSON 3
H Probleme mit xmlrpc und php XML & JSON 13
B Probleme mit Zugriff auf eXist-Datenbank XML & JSON 9
H Neu bei JAVA- Probleme mit der Integration von Xerces XML & JSON 3
P Probleme mit jdom XML & JSON 5
R JAVA und DOM, probleme beim einfügen von elementen ?????? XML & JSON 6
B XPath soll XML liefern XML & JSON 7
O XPATH Problem - Anfänger XML & JSON 4
M dom4j unberechtigte Invalid XPath expression XML & JSON 12
W XPath schreiben XML & JSON 1
P HTML XPath XML & JSON 1
S Ersatz für die veraltete Klasse XPath XML & JSON 1
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
P Xpath zugriff auf Attribute XML & JSON 3
P "XPath is deprecated" XML eclipse XML & JSON 3
G HtmlUnit XPath XML & JSON 5
D XPath-Query XML & JSON 2
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
AMStyles XPATH Befehl SVG Java XML & JSON 2
G xpath: in Kindelement zwei Attribut-Werte auslesen XML & JSON 2
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
H ChildNode via XPath ansprechen XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S Attribute von Elementen auslesen mit XPath XML & JSON 2
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
W XPath + Inhalt aus <td> XML & JSON 2
R XPath - frage zur Adressierung XML & JSON 3
reibi XPath XML & JSON 14
M xPath liefert leeres Nodeset XML & JSON 2
W Element mit XPath @id ermitteln wenn nur ein teil der id bekannt ist XML & JSON 2
F XPath-Problem mit DOM4J XML & JSON 8
T XPath Problem: finden einer Node nach Attributswert XML & JSON 2
O XPATH gesucht XML & JSON 6
G XPATH-Frage XML & JSON 2
L Element manipulieren in einem DOMResult per XPath XML & JSON 10
P XPath und Namespaces XML & JSON 3
G XPath - replace function funktioniert nicht XML & JSON 3
E XPATH-Ausdruck mit not XML & JSON 4
E Wieso liefert dieser XPATH-Ausdruck nicht die richtige Anzahl Treffer? XML & JSON 8
M XPath Ausdruck validieren XML & JSON 2
N XPath Adressierung XML & JSON 7
F XPath frage XML & JSON 4
B Optionaler XPath pfad XML & JSON 2
B XPath frage XML & JSON 2
T Frage zu XQuery (XQJ) / XPath XML & JSON 2
P XPath Problem XML & JSON 2
S Problem mit XPath XML & JSON 4
T Mit XPATH finden und dann änder XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
G XPath gesucht für Tag mit konkretem Content XML & JSON 2
A XPath Problem XML & JSON 2
C XPath in JDOM klappt nicht XML & JSON 2
T Prbolem XPath XML & JSON 2
X Xpath, alle Element die mit "user" beginnen auswäh XML & JSON 2
loadbrain XPath Problem XML & JSON 2
M brauche große XML-Datei für XPath-Tests XML & JSON 4
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
F hilfe bei xpath-ausdruck XML & JSON 2
K java + xpath -> performanceproblem XML & JSON 9
H Xpath kindelemente auslesen XML & JSON 2
S Xml zurück in xpath wandeln XML & JSON 8
G Frage zu XPath XML & JSON 2
flashfactor Filtern mittels XPATH XML & JSON 4
M XSL/XPath - Nur ersten Wert mit selben Attribut XML & JSON 4
M XPath Problem im Zusammenhang mit document() XML & JSON 2
M Frag zu xsl:when beziehungsweise XPath XML & JSON 3
F JDom und XPath XML & JSON 12

Ähnliche Java Themen

Neue Themen


Oben