Entwickler-Ecke
Alle Sprachen - Alle Plattformen - XPath Zugriff
JohnDyr - Fr 15.03.19 23:43
Titel: XPath Zugriff
Hallo,
ich muss gerade mit XPath arbeiten um auf bestimmte Elemente zuzugreifen. Leider komme ich nicht auf den XPath Ausdruck.
Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <start> <ebene1> <ebene2> <employeekey id="2" name="Max, Mustermann">2398481239</employeekey> <hours>5</hours> </ebene2> <ebene2> <employeekey id="2" name="Max, Mustermann">2398481239</employeekey> <hours>6</hours> </ebene2> <ebene2> <employeekey id="3" name="Max, Mustermann">2398481239</employeekey> <hours>10</hours> </ebene2> <ebene1> <start> |
Ich möchte alle hour Elemente (Liste aus Strings) über ein XPath Ausdruck wiederbekommen, wo die employeeKey ID = X ist. Wisst Ihr wie der XPath dafür gelten muss? Folgender XPath gibt mir alle hours zurück, unabhängig von der employee id:
Quelltext
1:
| /start/ebene1/ebene2/hours |
JohnDyr - Sa 16.03.19 00:13
Stimmt, habe es angepasst. Danke dir :)
Es kann sein, dass ich nochmal die ein oder andere XPath Frage stellen werde, falls ich mit dem Tool nicht weiterkomme.
Palladin007 - Sa 16.03.19 00:16
Dein XML ist immer noch invalide :P
Aber ich geh Mal davon aus, dass das nur ein Test für das Forum war.
Und lies dir die Anleitungen zu XPath durch, wie z.B. den Wikipedia-Artikel dazu.
XPath ist extrem flexibel, aber auch sehr eingängig, die meisten Dinge kann man mit einer sehr steilen Lernkurve lernen.
Ich hab mir XPath auch vor kurzem für ein Projekt engeeignet und ich hatte in etwa einen Abend Zeit :D
JohnDyr - Sa 16.03.19 00:36
Richtig, habe das XML per Hand geschrieben weil die echten Daten diskret sind.
Jedenfalls habe ich folgendes Tool gefunden, was echt genial ist:
XMLQuireWin8
Ist komplett Freeware. Kannst es dir ja anschauen, falls du noch an deinem XPath Projekt sitzt.
Delete - Sa 16.03.19 00:39
- Nachträglich durch die Entwickler-Ecke gelöscht -
JohnDyr - Sa 16.03.19 01:04
Frühlingsrolle hat folgendes geschrieben : |
Quelltext 1:
| //employeekey[@id="3"]/../hours |
hätte es auch getan |
habe ich auch so umgesetzt :)
C#-Quelltext
1:
| XmlNodeList nodes = doc.SelectNodes("//employeekey[@id=\"" + employeeId + "\"]/../hours"); |
Delete - Sa 16.03.19 01:11
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!