I’m spinning my wheels on this. How do I get the values from the following nested elements from the XML below (I’ve also put my code below)? I am after the “descShort” value and then the capital “Last” and capital “change” :
<indices>
<index>
<code>DJI</code>
<exchange>NYSE</exchange>
<liveness>DELAYED</liveness>
<indexDesc>
<desc>Dow Jones Industrials</desc>
<descAbbrev>DOW JONES</descAbbrev>
<descShort>DOW JONES</descShort>
<firstActive></firstActive>
<lastActive></lastActive>
</indexDesc>
<indexQuote>
<capital>
<first>11144.57</first>
<high>11153.79</high>
<low>10973.92</low>
<last>11018.66</last>
<change>-125.9</change>
<pctChange>-1.1%</pctChange>
</capital>
<gross>
<first>11144.57</first>
<high>11153.79</high>
<low>10973.92</low>
<last>11018.66</last>
<change>-125.9</change>
<pctChange>-1.1%</pctChange>
</gross>
<totalEvents>4</totalEvents>
<lastChanged>16-Apr-2010 16:03:00</lastChanged>
</indexQuote>
</index>
<index>
<code>XAO</code>
<exchange>ASX</exchange>
<liveness>DELAYED</liveness>
<indexDesc>
<desc>ASX All Ordinaries</desc>
<descAbbrev>All Ordinaries</descAbbrev>
<descShort>ALL ORDS</descShort>
<firstActive>06-Mar-1970</firstActive>
<lastActive></lastActive>
</indexDesc>
<indexQuote>
<capital>
<first>5007.30</first>
<high>5007.30</high>
<low>4934.00</low>
<last>4939.40</last>
<change>-67.9</change>
<pctChange>-1.4%</pctChange>
</capital>
<gross>
<first>5007.30</first>
<high>5007.30</high>
<low>4934.00</low>
<last>4939.40</last>
<change>-67.9</change>
<pctChange>-1.4%</pctChange>
</gross>
<totalEvents>997</totalEvents>
<lastChanged>19-Apr-2010 17:02:54</lastChanged>
</indexQuote>
</index>
$.ajax({
type: "GET",
url: "stockindices.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('index').each(function(){
var self = $(this);
var code = self.find('indexDesc');
$(code).find('indexDesc').each(function(){
alert(self.find('descShort').text());
});
$('<span class=\"tickerItem\"></span>').html(values[0].text()).appendTo('#marq');
});
}
});
You have some flaws in your function. This should do it:
Two comments on your code:
Here you assign the element
indexDescto the variablecodeand later you try to find the elementindexDescinsideindexDesc(which does not exist).I really wonder where
valuescomes from, it is never declared. And you don’t need to escape double quotes in single quotes.I really recommand to read the documentation and a tutorial to get the basics of jQuery.