Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Распарсить xml, зная структуру (https://javascript.ru/forum/events/40551-rasparsit-xml-znaya-strukturu.html)

alex55 10.08.2013 14:42

Распарсить xml, зная структуру
 
В переменной text например у меня есть xml
мне нужно добраться до определенных элементов. я структуру знаю.
на пхп я делаю примерно так main->city->name итд.
а можно ли на яваскрипт сразу перейти к нужному элементу без for и while?
чтобы например так var name = main->city->name

danik.js 10.08.2013 15:28

doc.querySelector('main > city > name')
Или через XPath

alex55 10.08.2013 15:46

var a = xmlhttp.responseText;
         var b = a.querySelector("main->city->name"); 
         alert(b);


пишет "содержимое переменной а".has not method querySelector...

Deff 10.08.2013 15:52

alex55,
Нун создать документ и определить его содержимое

alex55 10.08.2013 15:53

а как

danik.js 10.08.2013 15:56

Если contentType правильный, то документ уже сформирован и находится в xmlhttp.responseXML

И посмотри на селектор. Я писал не так, как у тебя.

alex55 10.08.2013 16:58

проблема видимо в том что у меня не responseXML а responseText
т.к. у меня xml запрашивается через ajax.. кка тогда быть?

Deff 10.08.2013 17:08

alex55,
Ну а пробовать создать
var xml = document.createElement('div');
xml.innerHTML = xmlhttp.responseText;

И парсить xml.querySelector("main >city >name");

danik.js 10.08.2013 17:19

Цитата:

Сообщение от alex55
проблема видимо в том что у меня не responseXML а responseText

Ну исправь responseText на responseXML
Цитата:

Сообщение от alex55
т.к. у меня xml запрашивается через ajax.. кка тогда быть?

Гы, а как можно использовать объект XMLHttpRequest без ajax? Как ты это себе представляешь?

alex55 10.08.2013 17:34

я решил проблему так:
xmlhttp.overrideMimeType('text/xml'); перед отсылкой запроса


Часовой пояс GMT +3, время: 11:13.