Есть ли способ перебрать непосредственные дети узла XML в JavaScript, не используя jquery или подобную библиотеку? Я пытался использовать «.childNodes», но по какой-то причине он не работает должным образом. «.childNodes.length» возвращает число, которое обычно больше числа непосредственных узлов, и все имена тегов (с использованием .tagName) по какой-то причине не определены. Я знаю, что мои XML-данные формируются правильно, потому что, если я вызываю «.getElementsByTagName()», используя теги непосредственных детей, он работает так, как должен. Некоторые примеры моей дилеммой:JavaScript XML Parsing
var root = xmlData.getElementsByTagName("library_geometries")[0];
for (i = 0; i < root.childNodes.length; i++) //get all the geometries
{
geom = root.childNodes[i];
alert(geom.tagName);
}
------------------------------------------------------
geom = root.getElementsByTagName("geometry");
for (i = 0; i < geom.length; i++) //get all the geometries
{
alert(geom[i].tagName);
}
Первый один не работает вообще, второй один работает в этом примере.
Если бы это произошло со мной, я бы хотел сначала проверить атрибут nodeType. Возможно, есть смешанные узлы CDATA (текст)? – Pointy
Ой, это не совсем о разборе XML, так как, если вы пересекаете DOM, что-то уже разобрало его (браузер, предположительно). – Pointy
полностью согласен с @Pointy .. вместо использования JS XML-анализатора? (т. е. sarissa ... http://dev.abiss.gr/sarissa/) – stecb