2017-09-18 5 views
1

ich versuchte use Element mit Attributwert zu lokalisieren '#aaa' für unterhalb SchnipselSelen/java-XPath für xlink: href Attribut

<svg> 
    <use xlink:href='#aaa'></use> 
</svg> 

ich in der Lage war, unter Verwendung von use[* |href='#aaa'] CSS-Selektor zu lokalisieren. Aber ich benötige es in XPath. Ich habe versucht, unter XPath, aber es funktioniert nicht

(//*[name()='use'])[ * ='#aaa' or @href='#aaa'] 

Hinweis: Ich brauche '#aaa' den Wert zu verwenden, von anderen Elementen zu unterscheiden.

Könnte jemand bitte helfen, diesen xpath zu konstruieren.

Antwort

0

Ihr Prädikat [ * ='#aaa' or @href='#aaa']false kehrt, da es keine Attribut als href (aber xlink:href) und use hat keine untergeordneten Knoten mit Textinhalt '#aaa': svg Namespace können Sie die folgenden xpath verwenden.

Beachten Sie, dass Wild-Card für irgendein Attribut ist @* während nur * für jeder Knoten (außer Attribut). Versuchen Sie unter XPath

"//*[name()='use' and @*='#aaa']" 
+0

Dank lot.this für mich gearbeitet – testXXX

0

Dies ist ein Tag SVG und es funktioniert ein wenig anders

Bitte versuchen Sie unter XPath:

//[local-name()='svg']/yourxpath 
+0

Könnten Sie mir bitte mitteilen, ob es funktioniert oder nicht –

0

Verwenden Sie den XPath

//use[@xlink:href='#aaa'] 

oder

//use[contains(@xlink:href,'#aaa')] 
0

Wie das Element ist innerhalb

//*[name()="svg"]/use[contains(@xlink:href,'#aaa')] 
0

ausblick, wenn jemand enthält braucht ..

"//*[name()='use'][contains(@*='#aaa')]" 
Verwandte Themen