XML Path Language (XPath) queries can be used to query the
XML documents with DOM methods such as
selectNodes or
selectSingleNode. The default query that is used is XSLPattern for backward
compatibility. To use XPath, change the
SelectionLanguage internal property of
DOMDocument to XPath. XPath adds lot of functionality; for example, it allows
you to use functions such as
string-length and
sum.
The following code sample demonstrates how to use XPath
with the
selectNodes method:
- 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.
NOTE:- 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.
For additional information, click the following article number
to view the article in the Microsoft Knowledge Base:
317663
(http://support.microsoft.com/kb/317663/EN-US/
)
How To Access XML Data Using DOM in .NET Framework with Visual Basic .NET