xml beispiele - XPath:Wie überprüft man, ob ein Attribut existiert?




funktionen tutorial (4)

Wie schreibe ich eine XPath-Abfrage zum Ziehen von Knoten, an denen das Attribut foo existiert ?:

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>

Answers

Wenn Sie und XPath verwenden, kann Ihnen das vielleicht helfen:

count(//*[@foo])

Es wird die Anzahl der Knoten / untergeordneten Elemente mit dem Attribut foo zurückgegeben


Kurz und bündig:

//*[@foo]

Natürlich sollten Sie einen spezifischeren Ausdruck verwenden. Aber mit [@attributeName] Sie alle Knoten, die dieses Attribut haben.


Verwenden Sie den folgenden XPath-Ausdruck

//*[boolean(@foo)]

Sie können es auch bekommen

string(//bookstore/book[1]/title/@lang)    
string(//bookstore/book[2]/title/@lang)

Wenn Sie jedoch XMLDOM mit JavaScript verwenden, können Sie etwas codieren

var n1 = uXmlDoc.selectSingleNode("//bookstore/book[1]/title/@lang");

und n1.text gibt dir den Wert "eng"





xml xpath