Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    New to the CF scene
    Join Date
    Apr 2005
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Get Specific Node Values

    Hello All,

    I am doing a little xml learning.
    Here is what I want to do....

    I want to select a node where a child node has a specific value. Once I have that node, I then want to get other specific child node values to use/display in my html.
    So, I am searching the xml file for a specific value in a node. Once found, I want to select the parent of that node and then get at the child node values.

    Example:

    Code:
    <?xml version=1.0"?>
      <locations>
        <loc>
          <id>121</id>
          <user>Joe Smith</user>
          <section>AAA</section>
        </loc>
        <loc>
          <id>122</id>
          <user>Bill Jones</user>
          <section>BBB</section>
        </loc>
      </locations>
    So I want to search the xml file above and select the "loc" node whose "id" node value = 122. I then want to get the remaining child nodes (user and section) from that selected "loc" node.

    I am using javascript to do this.

    It seems it should be easy enough to do....I just have not gotten anything to work yet.
    Any assistance would be greatly appreciated.

    Regards,
    Mike

  • #2
    Senior Coder
    Join Date
    Jan 2011
    Location
    Missouri
    Posts
    4,166
    Thanks
    23
    Thanked 601 Times in 600 Posts
    First: your xml code, first line reads
    Code:
    <?xml version=1.0"?>
    It should be
    Code:
    <?xml version="1.0"?>
    I saved it as location.xml
    This html does what you want:

    Code:
    <!DOCTYPE html>
    <html>
    <body>
    <script>
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.open("GET","location.xml",false);
    xmlhttp.send('');
    xmlDoc=xmlhttp.responseXML;
    
    var x=xmlDoc.getElementsByTagName("loc");
    for (i=0;i<x.length;i++)
    {
    	if(x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue == 122)
    	{
    		document.write(x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue+"<br />");
    		document.write(x[i].getElementsByTagName("user")[0].childNodes[0].nodeValue+"<br />");
    		document.write(x[i].getElementsByTagName("section")[0].childNodes[0].nodeValue);
    	}
    }
    </script>
    </body>
    </html>

  • #3
    New to the CF scene
    Join Date
    Apr 2005
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts
    I thought I could do something like that.
    I was hoping that xpath would be able to to just allow me to "grab" the node that contained the value and then use the child nodes within.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •