Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > разбор xml


Автор: 31416 6.10.2007, 22:52
забираю XML данные через
res = objXml.responseXML;
пытаюсь получить содержимое узла:
res.selectNodes('/root');
в IE это срабатывает а в FireFox Нет

подскажите какими функциями лучше пользоваться для разбора (брать содержимое узлов и их атрибутов) чтобы срабатывало везде:

xml:

<root id="0">
    <item>1</item>
    <item>2</item>
</root>

Автор: bronenos 6.10.2007, 23:09
.getElementsByTagName, .getAttribute

Автор: cruelangel 6.10.2007, 23:49
попробуй res.evaluate

Автор: 31416 7.10.2007, 12:34
getElementsByTagName на вход получает имя узла.. может же быть такое что в узле может повторяться его же имя для именования других узлов..-тогда эта функция вернет и их.. а как можно получить узлы по строго определенному адресу - например root\item ?

Автор: bronenos 7.10.2007, 22:59
...а возвращает - массив

Автор: UhaMurad 4.11.2007, 13:16
Код

var xpr = res.evaluate('/root/item', res, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var len = xpr.snapshotLength;
for (i = 0; i < len; i++){
  alert(xpr.snapshotItem(i).textContent); 
}


а в случае атрибута:

Код

var xpr = res.evaluate('/root/@id', res, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
...
                    

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)