[xml] Was ist der korrekte XPath zum Auswählen von Attributen, die "foo" enthalten?



3 Answers

Dieser XPath gibt Ihnen alle Knoten mit Attributen, die 'Foo' enthalten, ungeachtet des Knotennamens oder Attributnamens:

//attribute::*[contains(., 'Foo')]/..

Wenn Sie sich mehr für den Inhalt des Attributs und nicht unbedingt für den übergeordneten Knoten interessieren, löschen Sie einfach das / ..

//attribute::*[contains(., 'Foo')]
Question

Bei diesem XML gibt XPath alle Elemente zurück, deren prop Attribut Foo (die ersten drei Knoten) enthält:

<bla>
 <a prop="Foo1"/>
 <a prop="Foo2"/>
 <a prop="3Foo"/>
 <a prop="Bar"/>
</bla>



Wenn Sie auch den Inhalt des Links selbst anpassen müssen, verwenden Sie text ():

//a[contains(@href,"/some_link")][text()="Click here"]




John C ist am nächsten, aber XPath unterscheidet zwischen Groß- und Kleinschreibung. Daher lautet der korrekte XPath:

/bla/a[contains(@prop, 'Foo')]



Für den obigen Code ... // * [enthält (@ prop, 'foo')]




Related



Tags

xml   xpath