Frage zu XPath-Syntax bzw XPath-Möglichkeiten
Peter
- xml
0 frankx
HI @ll!
Hätte mal, wie im Betreff erwähnt, ne Frage zu XPath.
XML-Struktur (Knotennamen erfunden und syntaktisch nicht unbedingt richtig)
...
<Brief>
<Ort language="de">Nürnberg</Ort>
<Ort language="en">Nuremberg</Ort>
<Begrüßung language="de">Hallo</Begrüßung>
<Begrüßung language="en">Hello</Begrüßung>
<Begrüßung language="es">Hola</Begrüßung>
</Brief>
...
So und nun das eigentliche Problem. Ich möchte nun mit XPath alle Knoten die zu einer Sprache passen UND wenn es z.B. für die Sprache "es" keinen Knoten gibt immer den mit der Sprache "en", aber eben nur dann wenn es KEINE passende Sprache gibt.
XPath (aktuell)
"/ReportTextComponents/*[name()='Common' or
name()='...']/descendant::*[(not(child::*) or
name()='Brief') and (not(@country) or @country =
'DEU') and (not(@language) or @language = 'de')]"
Gibt es überhaupt eine Lösung für das Problem bzw. der Rat weiß???
So oder so, Danke und einen schönen Abend
Peter
Hellihello Peter,
womit wendest Du denn die XPath-Abfrage an? PHP, simplexml, domfunktion?
XML-Struktur (Knotennamen erfunden und syntaktisch nicht unbedingt richtig)
...
<Brief>
<Ort language="de">Nürnberg</Ort>
<Ort language="en">Nuremberg</Ort><Begrüßung language="de">Hallo</Begrüßung>
<Begrüßung language="en">Hello</Begrüßung>
<Begrüßung language="es">Hola</Begrüßung>
</Brief>
...
Kommen die Sonderzeichen in als Elementname gut?
>
> So und nun das eigentliche Problem. Ich möchte nun mit XPath alle Knoten die zu einer Sprache passen UND wenn es z.B. für die Sprache "es" keinen Knoten gibt immer den mit der Sprache "en", aber eben nur dann wenn es KEINE passende Sprache gibt.
>
> XPath (aktuell)
> "/ReportTextComponents/\*[name()='Common' or
> name()='...']/descendant::\*[(not(child::\*) or
> name()='Brief') and (not(@country) or @country =
> 'DEU') and (not(@language) or @language = 'de')]"
Sieht erstmal verwirrender aus als Deine Frage. Kannst Du da nicht ein einfachs Beispiel extrahieren? "ReportTextComponents" zB taucht in deine xml-string garnicht auf.
> Gibt es überhaupt eine Lösung für das Problem bzw. der Rat weiß???
Die logischen Verknüpfungsmöglichkeiten kenne ich nicht bei Xpath, aber deinem Beispie zufolge scheint es sie ja zu geben.
Ander möglichkeit wäre ja, dann mit PHP zu schauen, ob das Ergebnis leer ist und dort dann die Anfrage zu switchen...;
Dank und Gruß,
frankx