xml und xpath: bestimmte Knoten selektieren
Turgar
- xml
Hallo,
ich habe hier folgendes Problem:
Geben ist eine xml-Datei, an die ich mittels xpath "Anfragen" stellen soll...
Zum Beispiel sollen alle direkten Nachkommen von "Eve" bestimmt werden.
Hier die xml dazu:
<?xml version="1.0" encoding="iso-8859-1"?>
<RINDER xmlns:xsi="http://www.w3.org/2001U/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Namen.xsd">
<GENERATION-EINS>
<TIER>Eve</TIER>
<GENERATION-ZWEI>
<TIER>Betsy</TIER>
<GENERATION-DREI>
<TIER>Novi</TIER>
<TIER>Ginny</TIER>
<GENERATION-VIER>
<TIER>Suzy</TIER>
<GENERATION-FUENF>
<TIER>Della</TIER>
</GENERATION-FUENF>
<TIER>Ruth</TIER>
</GENERATION-VIER>
<TIER>Teddi</TIER>
</GENERATION-DREI>
<TIER>Poco</TIER>
<TIER>Greta</TIER>
<TIER>Mandy</TIER>
<GENERATION-DREI>
<TIER>Paula</TIER>
<TIER>Duke</TIER>
</GENERATION-DREI>
<TIER>Cindy</TIER>
</GENERATION-ZWEI>
</GENERATION-EINS>
</RINDER>
Laut dem was ich bei wikipedia etc gelesen habe, sollte mich
"/RINDER/GENERATION-EINS[TIER = 'Eve']" zum Ziel führen.
Allerdings erhalte ich bei meiner Anfrage den gesamten Baum, also von Eve bis zum letzen Nachkommen alle Elemente.
Kann mir jemand weiterhelfen?
Hellihello
https://forum.selfhtml.org/?t=173436&m=1138762 und mal den verwandten Code posten.
dein Tier mit Namens Eve ist übrigens ein Element ohne Kindelemente. Es hat nur "Gewschwister" und "Vorfahren/Eltern", und enthält nur einen Textknoten.
Dank und Gruß,
Es gibt keinen Quellcode dazu, da es sich um eine xml-Datenbank handelt.
Dieser werden lediglich xpath-Anfragen übergeben;
Hellihello
Es gibt keinen Quellcode dazu, da es sich um eine xml-Datenbank handelt.
Dieser werden lediglich xpath-Anfragen übergeben;
aha, aber was gibt sie dann zurück, als antwort?
das zum testen nachzubasteln um via php xpath-anfragen auszuprobieren ist ja (s. link) kein problem, bzw. drei zeilen code...;
Dank und Gruß,
Für eine Anfrage mit "/RINDER/GENERATION-EINS/GENERATION-ZWEI/GENERATION-DREI/GENERATION-VIER[TIER = 'Suzy']/ancestor-or-self::TIER" erhalte ich beispielsweise ein leeres Ergebnis.
Meiner Meinung nach sollte in diesem Fall jedoch Suzy und alle TIER-Vorfahren als Ergebnis angezeigt werden.
Hellihello
Für eine Anfrage mit "/RINDER/GENERATION-EINS/GENERATION-ZWEI/GENERATION-DREI/GENERATION-VIER[TIER = 'Suzy']/ancestor-or-self::TIER" erhalte ich beispielsweise ein leeres Ergebnis.
Meiner Meinung nach sollte in diesem Fall jedoch Suzy und alle TIER-Vorfahren als Ergebnis angezeigt werden.
kein "//" am Anfang? was liefert "ancestor-or-self::*" ich würde das zum testen in PHP nachbauen...;
Dank und Gruß,