2013-02-28 10 views
7

Ich habe eine xml wieWählen Sie Knoten ohne Namensraum mit XPath

<root xmlns:ns1="http://foo"> 
    <ns1:child1>Text</ns1:child1> 
    <ns1:child2>Number</ns1:child2> 
</root> 

Jetzt habe ich diese bekommen von verschiedenen Personen, so dass zum Beispiel Person 2 wie ich eine weitere Nachricht mit der gleichen Struktur sendet

<root xmlns:anotherNs="http://foo"> 
    <anotherNs:child1>Another Text</anotherNs:child1> 
    <anotherNs:child2>Another Number</anotherNs:child2> 
</root> 

Der einzige Unterschied ist der Name des Namensraums. Wie kann ich den Inhalt von child2 für beide xmls mit einem XPath-Ausdruck auswählen?

Etwas wie "/ root/child2" oder "// child2" hat nicht funktioniert.

Antwort

0

Sie ein beliebiges Präfix binden können (sagen Banane) auf den Namespace wie "http://foo", und der Ausdruck /root/banana:child2 das child2 Element finden, egal was Namespacepräfix wurde im Quelldokument verwendet. Nur der Namespace-URI muss übereinstimmen.