Alexander Ganz: Msxml2.DOMDocument.4.0 Selektionsproblem (Syntax für Xpath)

Hallo Allerseits,

ich versuche über Msxml2.DOMDocument.4.0 und Xpath bestimmte Nodes zu selektieren. Der Code sieht so aus:

Set xmlDoc = CreateObject("Msxml2.DOMDocument.4.0")
xmlDoc.setProperty "SelectionLanguage", "XPath"
xmlDoc.loadxml("<root><hallo/><item name='nichts'>hallo</item><item name='meins'>Das will ich</item></root>")

' Hier die Selektion:
Set Nodes = xmlDoc.selectNodes("//item[@name='meins']")
msgbox typeName(Nodes) & " - length: " & Nodes.length
Set xmlDoc = Nothing

Das klappt ganz wunderbar.
Falls allerdings in der Root Node folgendes steht: xmlns="http://www.irgendwas.com/bla", kann nichts mehr selektiert werden.
Daher meine Frage: Gibt es für diesen Fall eine andere XPath-Syntax? Wie schaffe ich es trotz dieses Eintrages die Nodes zu selektieren?

Viele Grüße
Alex

  1. Hallo nochmal,

    hab´s herausgefunden:

    Es muss noch ein zusätzliches setProperty mit dem Namespace rein:

    Set xmlDoc = CreateObject("Msxml2.DOMDocument.4.0")
    xmlDoc.setProperty "SelectionLanguage", "XPath"

    xmlDoc.setProperty "SelectionNamespaces", "xmlns:test='http://www.test.de/test'"
    xmlDoc.loadxml("<root xmlns='http://www.test.de/test'><hallo/><item name='nichts'>hallo</item><item name='meins'>Das will ich</item></root>")

    ' Hier die Selektion:

    Set Nodes = xmlDoc.selectNodes("//test:item[@name='meins']")

    msgbox typeName(Nodes) & " - length: " & Nodes.length
    Set xmlDoc = Nothing

    Dann klappt´s....

    Viele Grüße
    Alex