代码之家  ›  专栏  ›  技术社区  ›  Pablo

DOM访问元素JS

  •  0
  • Pablo  · 技术社区  · 15 年前

    给定以下XML

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

    我如何有效地访问 pudDate 在里面 channel items 作为数组,以及 蒲公英 在那个数组中。

    1 回复  |  直到 15 年前
        1
  •  1
  •   KooiInc    15 年前

    您可以使用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 是(XML)文档根。

    此函数返回一个数组,其中包含由xpath表达式请求的元素。