DOM访问元素JS

时间:2010-05-02 07:25:54

标签: javascript firefox dom

给出以下xml

<rss>
    <channel>
    ...
    <pubDate>20/30/2099</pubDate>
    ...
    <item>
        ...
        <pubDate>10/30/2099</pubDate>
        ...
    </item>
    ...
    <item>
        ...
        <pubDate>40/30/2099</pubDate>
        ...
    </item>
    ...
    </channel>
</rss>

如何有效地访问pudDatechannel中的items作为数组,以及该数组中的pudDate

1 个答案:

答案 0 :(得分:1)

使用 document.evaluate ,您可以使用xpath(只要您不需要IE)。这是我用它的功能:

 function getFromXPath(expression,rootEl){
   rootEl = rootEl || docbody;
   var ret = [] 
             ,xresult = document.evaluate(expression, rootEl, null,
                         XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null)
             ,result = xresult.iterateNext();
   while (result) {
     ret[ret.length]= result;
     result = xresult.iterateNext();
   }
   return ret;
}

在您的情况下expression可能类似于"//channel/pubdate|channel/item/pubdate"(对于树中的所有pubdates)或"//chanel/items"(对于item中的所有rootEl元素树),{{1}}是(xml)文档根目录。

此函数返回一个数组,其中包含xpath-expression所请求的元素。