+ -
当前位置:首页 → 问答吧 → 解析XML,怎么从下往上只取3项内容呢??

解析XML,怎么从下往上只取3项内容呢??

时间:2011-01-26

来源:互联网

有个XML,结构是这样的:
复制内容到剪贴板
代码:
<?xml version="1.0" encoding="UTF-8"?>
<main linkColor="0xfdc666" rollOverColor="0x999999" linkSpacing="70">
    <item>
        <title>标题11111111111111开始</title>
        <year>[2011-01-20]</year>
        <text><![CDATA[11111111111111内容]]></text>
    </item>
    <item>
        <title>标题22222222</title>
        <year>[2011-01-21]</year>
        <text><![CDATA[2222222222内容内容内]]></text>
    </item>
    
        <item>
        <title>标题33333333</title>
        <year>[2011-01-22]</year>
        <text><![CDATA[333333333333内容内容]]></text>
    </item>
    
        <item>
        <title>标题4444444444</title>
        <year>[2011-01-22]</year>
        <text><![CDATA[4444444444444444内容内容]]></text>
    </item>
    
    
        <item>
        <title>标题555555</title>
        <year>[2011-01-23]</year>
        <text><![CDATA[555555内容内容内容内]]></text>
    </item>
        
        <item>
        <title>标题66666</title>
        <year>[2011-01-24]</year>
        <text><![CDATA[66666内容内容]]></text>
    </item>
</main>
我现在只想得到最后3项的标题,年份,内容,以外的不需要了。就是只需要

<item>
              <title>标题4444444444</title>
              <year>[2011-01-22]</year>
              <text><![CDATA[4444444444444444内容内容]]></text>
       </item>
       
       
              <item>
              <title>标题555555</title>
              <year>[2011-01-23]</year>
              <text><![CDATA[555555内容内容内容内]]></text>
       </item>
              
              <item>
              <title>标题66666</title>
              <year>[2011-01-24]</year>
              <text><![CDATA[66666内容内容]]></text>
       </item>


这最后三项的各个内容。
若XML往下更新内容的话,也是只取最后3项的。
不知道怎么从下往前解析,而且只取后3大项内容?

作者: 568041915   发布时间: 2011-01-26

for (i:Number = Arr.length - 3,i< Arr.length , i++){

}

或者直接XML只取3项

作者: 84862258   发布时间: 2011-01-26

不用FOR循环,直接XML取怎么取。这里XML只有6条新闻。若更多,也只取最后面的3条。
比如现在我需要最后一条新闻的内容。
我这样:
stop();
var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
       if (ok) {
              loadXML(this);
       } else {
              trace("Error XML");
       }
};
my_xml.load("xml/news.xml");
function loadXML(desXML) {
       var items = desXML.firstChild.childNodes;
       var len=items.length;
       var lastOne=items[5].childNodes[2].firstChild.nodeValue;
       trace(lastOne);
}

这样确实是得到了第6条,也就是最后一条的内容。但是我XML在最后添加一项新闻,那就取的就不是最后的了。
应该如何弄呢

作者: 568041915   发布时间: 2011-01-26

用长度来算么
获取长度
然后倒着来

作者: 84862258   发布时间: 2011-01-26

function loadXML(desXML) {
       var items = desXML.firstChild.childNodes;
       var len:Number=items.length;
       var lastOne=items[len].childNodes[2].firstChild.nodeValue;
       trace(lastOne);
}

作者: 84862258   发布时间: 2011-01-26

不行呀,undefined

作者: 568041915   发布时间: 2011-01-26

热门下载

更多