Hm, nu var det länge sedan jag satt med VB - och jag antar att det inte är .net eftersom du nämner MSXML2 och inte System.Xml.
Så, fritt ur minnet så tror jag att det går bra att hämta ett XmlElement direkt från selectSingleNode på nedanstående vis. Ett XmlElement är ju en XmlNode, och jag tror att man castar den automatiskt om man definierar objektet som en MSXML2.IXMLDOMElement.
Dim XmlDoc As New MSXML2.DOMDocument40
Dim XmlElement As MSXML2.IXMLDOMElement
XmlDoc.loadXML "<?xml version=""1.0""?><root> <foo> <bar test=""123"" /> </foo></root>"
Set XmlElement = XmlDoc.selectSingleNode("/root/foo/bar")
MsgBox XmlElement.getAttribute("test")
Är det vbscript ska det gå att göra såhär:
Set xmlSource = CreateObject("MSXML2.DOMDocument")
xmlSource.loadXML "<?xml version=""1.0""?><root> <foo> <bar test=""123"" /> </foo></root>"
Set Node = xmlSource.selectSingleNode("/root/foo/bar")
MsgBox Node.getAttribute("test")
Alternativt kan du ju hämta ut själva attributen - som ju är en XmlNode den också - direkt med Xpath:
Set XmlNode = XmlDoc.selectSingleNode("/root/foo/bar/@test")
MsgBox XmlNode.nodeValue
