Solved

jQuery Filter XML data

Posted on 2009-07-13
1
2,340 Views
Last Modified: 2012-05-07
I have the following code below.  I can load the XML no problems but what i want to do is filter the xml data so it will select the node with the id=1 and put title,teaser in separate variables.  


<!-Start xml Code -->
<?xml version="1.0" encoding="iso-8859-1"?>
 <stories>
   <story id='1'>
     <title>MyTitle 1</title>
     <teaser>test</teaser>
	 <readmore>test</readmore>
   </story>
   
    <story id='2'>
     <title>MyTitle 2</title>
     <teaser>test</teaser>
	 <readmore>test</readmore>
   </story>
   
   
    <story id='3'>
     <title>MyTitle 3</title>
     <teaser>test</teaser>
	 <readmore>test</readmore>
   </story>
   
 </stories>
<!--End XML code --->
 
 
<!-- Start jQuery Code -->
  <script type="application/javascript">
	 <!-- Avoid W3C validator on heavy javascript 
        $(document).ready(function() {
             $.ajax({
                 type: "GET",
                 url: "xml/myxml.xml",
                 dataType: "xml",
                 success: function(xml) {
                    var returnRecord = $(xml).filter("[ id = 1 ]");
					var str=jQuery.param(returnRecord);
   
                 }
             }); //close $.ajax(
         }); //
 	 //-->
    </script>
<!-- End jQuery Code -->

Open in new window

0
Comment
Question by:stargateatlantis
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 82

Accepted Solution

by:
hielo earned 500 total points
ID: 24845918

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
  <script type="text/javascript">
         
        $(document).ready(function() {
             $.ajax({
                 type: "GET",
                 url: "xml/myxml.xml",
                 dataType: "xml",
                 success: function(xml) {
				
                    
				var title = $(xml).find("story[id=1] > title").text();
                   var teaser = $(xml).find("story[id=1] > teaser").text();
				alert("One by one-\ntitle=" + title + "\nteaser=" + teaser);
				
				var data=[];
				$(xml).find("story[id=1] > *").each(
					function(){
						if(1==this.nodeType)
						{
							data[this.nodeName]=this.firstChild.nodeValue;
						}
					}
				);
				var all="";
				for(var k in data)
				{
					all+="\n"+k+"="+data[k];
				}
				alert("all at once-"+all);
				
				//you can of course get the values from
				//data.title, data.teaser, etc OR data["title"], data["teaser"]
   
                 }
             }); //close $.ajax(
         }); //
        
    </script>
 
</body>
</html>

Open in new window

0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Confluence of Individual Knowledge and the Collective Intelligence At this writing (summer 2013) the term API (http://dictionary.reference.com/browse/API?s=t) has made its way into the popular lexicon of the English language.  A few years ago, …
How to build a simple, quick and effective accordion menu using just 15 lines of jQuery and 2 css classes
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question