<EXAMPLE>
<CUSTOMER id="1" type="B">Mr. Jones</CUSTOMER>
<CUSTOMER id="2" type="C">Mr. Johnson</CUSTOMER>
</EXAMPLE>
<%
Dim oXMLDoc
Dim oXMLNode
Dim oXMLNodeList
Set oXMLDoc = Server.CreateObject("MSXML2.DOMDocument.4.0")
oXMLDoc.LoadXML(sXML)
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[@id='2' or @type='C']")
' oXMLNode.Text will show "Mr Johnson"
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[@id='1' and @type='B']")
' oXMLNode.Text will show "Mr Jones"
' oXMLNode.Attributes.getNamedItem("id").Text will show "1"
' oXMLNode.Attributes.getNamedItem("type").Text will show "B"
' Select a node list where id equals 1 and the type equals B or C.
' In our example, only Mr. Jones will be returned.
Set oXMLNodeList = oXMLDoc.selectNodes("//EXAMPLE/CUSTOMER[@id='1' and (@type='B' or @type='C')]")
' oXMLNode.Text will show "Mr Jones"
' Select a node with a specific text value
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[. ='Mr. Johnson']")
' oXMLNode.Text will show "Mr. Johnson"
' Select node list of all nodes with CUSTOMER not equal to "EggHeadCafe"
oXMLNodeList.selectNodes("//EXAMPLE/CUSTOMER[. !='EggHeadCafe']")
' Start of MSXML4 or higher features. If you want to use MSXML3, then
' you'll need to set the following:
oXMLDoc.setProperty "SelectionLanguage", "XPath"
' Search for a substring in an attribute
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[substring(@type,1,2) ='DE']")
' Search for a substring in a node value
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[substring(.,1,3) ='Mr.']")
' Search for a value contained in an attribute
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[contains(@type,'DECEA')]")
' Search for a contained in a node value
Set oXMLNode = oXMLDoc.selectSingleNode("//EXAMPLE/CUSTOMER[contains(.,'Smith')]")
' Search only from root of selected node. This examples gets a list of nodes
' from a specific node not the whole XML document. This XML document
' is too small to be a reasonable example but you get the idea.
' The ".//" tells the parser to make the current node the "root" node of the
' document for this specific XPath query. Without the ".", the XPath query
' would return all CUSTOMER nodes in the entire document even though
' they may be above or below the current node.
Set oNode = oXMLDoc.selectSingleNode("//EXAMPLE")
Set oXMLTreeList = oNode.selectNodes(".//CUSTOMER")
nTot = oXMLTreeList.length - 1
For nCnt = 0 to nTot
Set oXMLNode = oXMLTreeList.nextNode()
msgbox oXMLNode.Attributes.getNamedItem("id").Text
Next
' End of MSXML4 or higher features
Set oXMLNode = nothing
Set oXMLDoc = nothing
%>