Site Search:
Sign in | Join | Help

This Blog

4Penny offers domain names

Syndication

Recent Posts

Tags

No tags have been created or used yet.

Archives

4Penny.net

XML

  • Simple tasks

    Here are a couple of simple tasks in XML for VB.NET

    sXML string equals the following

    <?xml version='1.0'?>
      <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

    %>