wake-up-neo.com

XPath mit mehreren Bedingungen

Mit welchem ​​XPath kann ich eine Kategorie mit einem angegebenen Namensattribut und einen untergeordneten Knotenautor mit dem angegebenen Wert auswählen.

Ich habe verschiedene Varianten des folgenden Pfades ohne Erfolg ausprobiert:

//quotes/category[@name='Sport' and author="James Small"]

Das XML:

<?xml version="1.0" encoding="utf-8"?>
<quotes>
  <category name="Sport">
   <author>James Small<quote date="09/02/1985">Quote One</quote><quote             date="11/02/1925">Quote nine</quote></author>
  </category>
   <category name="Music">
   <author>Stephen Swann
 <quote date="04/08/1972">Quote eleven</quote></author>
  </category>
  </quotes>
135
mjroodt

Versuchen:
//category[@name='Sport' and ./author/text()='James Small']

216
Cylian

Verwenden:

/category[@name='Sport' and author/text()[1]='James Small']

oder benutze:

/category[@name='Sport' and author[starts-with(.,'James Small')]]

Es ist eine gute Regel, wenn möglich zu vermeiden, den Pseudooperator // Zu verwenden, da seine Auswertung normalerweise sehr langsam sein kann.

Ebenfalls:

./somename

ist äquivalent zu:

somename

es wird daher empfohlen, Letzteres zu verwenden.

26

frage ist nicht klar, aber was ich verstehe, müssen Sie eine Kategorie auswählen, die Namensattribut hat und Kindautor mit dem angegebenen Wert haben sollte, korrigieren Sie mich, wenn ich worng bin

hier ist ein xpath

//category[@name='Required value'][./author[contains(.,'Required value')]]
e.g
//category[@name='Sport'][./author[contains(.,'James Small')]]
14
akhter wahab