- Start Visual Basic and create a new Standard EXE.
- On the menu, select Projects, select References, and then add a reference to Microsoft XML, v3.0.
- Add the following code to your Form_Load event:
Dim dom As DOMDocument30
Dim nodelist As IXMLDOMNodeList
Dim strPath As String
Set dom = New DOMDocument30
dom.async = False
dom.loadXML "<Admin><Area AreaName='a'/></Admin>"
dom.setProperty "SelectionLanguage", "XPath"
strPath = "/Admin/Area[string-length(@AreaName) = 1]"
Set nodelist = dom.documentElement.selectNodes(strPath)
Debug.Print "Found " & nodelist.length & " Node"
- Run the application, and note that the Immediate window shows Found 1 Node.
- To show the default behavior, comment out the code line that calls setProperty. Running the code then produces an error message because XSL pattern-matching does not support the string-length function.
- With MSXML version 2.6, you need to make a reference to Microsoft XML, v2.6 in the Visual Basic project, and then use the corresponding ProgID of DOMDocument26.
- If a newer version of MSXML has been installed in Side-by-Side mode, then to run the sample code with that specific version, you must explicitly use the GUIDs or ProgIDs for that version. For example, MSXML version 4 only installs in side-by-side mode. Please refer to the following article in the Microsoft Knowledge Base to see what code changes required to run the sample code with MSXML 4.0 parser: Q305019 INFO: MSXML 4.0 Specific GUIDs and ProgIds. That is, with MSXML version 4.0, make a reference to Microsoft XML, v4.0 in the Visual Basic project, and then use the corresponding ProgID of DOMDocument40.
- When programming with Microsoft Visual C++, the setProperty method is only available with IXMLDOMDocument2 interface.
- For simplicity, the previous code does not include error checking. It is always a good practice to catch and handle errors.
Article ID: 288913 - Last Review: Jun 22, 2014 - Revision: 1