Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Как пройти по дереву XML файла


Автор: Jodler 21.7.2008, 23:50
Доброго времени суток!
Столкнулся с такой проблемой:
Есть xml файл. Его содержимие:
Код

<?xml version="1.0" encoding="UTF-8"  ?> 
<root>
    <data>
        Иванов Иван Иванович
    </data>
    <data>
        Петров Пётр петрович
    </data>
    <data>
        Сидоров Сидор Сидорович
    </data>
</root>

Считываю этот файл средствами javaScript и пытаюсь пройти по дереву, 
используя document.firstChild и document.lastChild. В итоге получаю соответственно
либо Иванов Иван Иванович, либо Сидоров Сидор Сидорович. А вот к Петрову никак не могу добраться. 
Не получается. В руководствах я этого не нашёл. Подскажите пожалуйста, как правильно нужно это сделать?
Вот код:
Код

<html>
<head>
<title>Тест</title>
</head>
<body>
<script>
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async =  false;
xmldoc.load("test.xml");
var rootElement = xmldoc.documentElement;

var myData = rootElement.firstChild;
// либо var myData = rootElement.lastChild;
var myText = myData.firstChild;

document.writeln(myText.nodeValue);
</script>
</body>
</html>

Автор: Samotnik 22.7.2008, 13:42
можно циклом и брать каждый элемент через childNodes(i)

Автор: JSman 23.7.2008, 16:47
а можно через XPath, что быстрее. 

Например, в Опере и ИЕ будет так:
xml.documentElement.selectNodes(".//*");

Для Мозилок интересуйтесь сами smile

А потом пробегайте по циклу.

Добавлено через 1 минуту и 15 секунд
Чуть не забыл сказать на будущее: XML в Safari поддерживатеся пока только через Ajax

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