Msxml2.DOMDocument.4.0 Selektionsproblem (Syntax für Xpath)
Alexander Ganz
- vb-script
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
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