Элемент доступа к DOM JS - PullRequest
0 голосов
/ 02 мая 2010

С учетом следующего 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 в виде массива, а также к pudDate в этом массиве.

1 Ответ

1 голос
/ 02 мая 2010

Вы можете использовать xpath (если он вам не нужен для IE), используя document.evaluate . Вот функция, которую я использую для этого:

 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-выражении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...