2016-09-09 9 views
0

Versuchen Sie, das //site/name aus der folgenden XML auszuwählen, wobei //site/homepage dasselbe ist wie //result/url. Der unmittelbar folgende XPath funktioniert für eine hartcodierte //site/homepage, aber ich würde gerne einen Selektor für die Gleichheitsprüfung verwenden, wenn möglich.Wählen Sie den Knoten aus, in dem der Text dem Text eines anderen Knotens entspricht

//site[homepage/text() = "google.com"]/name/text() 

Die XML, die ich versuche zu entsprechen.

<?xml version="1.0" encoding="UTF-8"?> 

<root> 
    <site> 
    <homepage>google.com</homepage> 
    <name>Google</name> 
    </site> 
    <site> 
    <homepage>www.bing.com</homepage> 
    <name>Bing</name> 
    </site> 
    <result> 
    <name>First Result</name> 
    <url>google.com</url> 
    </result> 
    <result> 
    <name>Second Result</name> 
    <url>www.bing.com</url> 
    </result> 
</root> 
+3

Bitte führen Sie die * genaue * XML-Knoten, die Sie möchten aus Ihrem Beispiel XML ausgewählt werden. Tun Sie dies als eine Liste von Ergebnis-XML-Knoten, nicht als mehrdeutige, teilweise XPath-Ausdrücke. Vielen Dank. – kjhughes

Antwort

-1

Sie sagte

Der Versuch, die // site/Name aus der unten XML auswählen, wo die // site/Homepage ist die gleiche wie // Ergebnis/url

sie übersetzt es relativ

dieNamen auswählen, das Kind ist von Website, für die Homepage entspricht einer url, die in jedem Ergebnis Element ist

//site[homepage = //result/url]/site 
Verwandte Themen