使用jQuery从XML获取嵌套项

时间:2010-04-19 17:37:09

标签: jquery xml

我在网上看过一些例子,但我仍然在努力解决这个问题。 我想在“ indexDesc ”标记中获取“ descShort ”标记的值,然后显示“最后”中的值“ 标签?我见过人们使用箭头>但我还是迷路了。

<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>
</indices>

1 个答案:

答案 0 :(得分:1)

“&gt;”是一个选择器;您可以在此处查看所有可用的内容:selectors。 “div&gt; span”将找到所有具有div作为父母的跨度。这与“div span”不同,它将找到所有跨越div的后代。

var values = [];

$(yourXml).find('index').each(function () {
  var self = $(this);

  values.push({
    descShort: self.find('descShort:first').text(),
    capitalLast: self.children('capital').children('last').text(),
    grossLast: self.children('gross').children('last').text()
  });
});

values现在是一个对象数组,每个对象都有descShort,captialLast和grossLast属性。

不幸的是我无法测试我的代码。