Как прочитать все дочерние элементы с именами тегов и их значения из файла XML? - PullRequest
1 голос
/ 13 апреля 2009

У меня есть XML-файл, в котором я храню некоторое HTML-содержимое в теге элемента с именем <body>. Сейчас я пытаюсь прочитать все содержимое HTML тега body, используя XML DOM в JavaScript.

Я попробовал этот код:

var xmlDoc=loadXMLDoc('QID_627.xml');
var bodytag = xmlDoc.getElementsByTagName("body");
document.write(bodytag);

но на экране браузера отображается сообщение [объект HTMLCollection].

Ответы [ 3 ]

2 голосов
/ 13 апреля 2009

Попробуйте это:

var xmlDoc=loadXMLDoc('QID_627.xml');
var bodytags = xmlDoc.getElementsByTagName("body");
document.write(bodytags[0]);

getElementsByTagName возвращает массив элементов (даже если найден только один), поэтому вам нужно добавить массив для извлечения вашего элемента.

1 голос
/ 13 апреля 2009

Эндрю Хейр отметил, что getElementsByTagName () всегда возвращает массив, поэтому вы должны использовать bodytag [0], чтобы получить нужный элемент. Это правильно, но не завершено, поскольку даже если вы это сделаете, вы все равно получите бесполезное сообщение «[object ElementName ]».

Если вы настроили использование document.write (), вы можете попытаться сериализовать содержимое тега body с помощью

 document.write(bodytag[0].innerHTML);

Еще лучше, если бы вы напрямую подключали исходные DOM-узлы к вашему DOM-адресу.

Вы бы использовали что-то вроде

document.getElementById("destinationNodeId").appendChild(bodytag[0]);

Могут быть некоторые проблемы с подключением узлов DOM из другого документа, которые могут потребовать, чтобы вы скопировали узлы или перепрыгнули через другие обручи, чтобы это работало.

0 голосов
/ 13 апреля 2009

Вам нужно использовать document.write(bodytag.toXMLString());

РЕДАКТИРОВАТЬ: Эндрю Харе также указывает, что вам нужно подписать в первую очередь. Я думаю, вам, возможно, все еще придется использовать вызов toXMLString.

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