Метод XML DOM replaceChild()
Определение и использование
Метод replaceChild() используется для замены одного подузла другим.
Если успешно,该方法 возвращает замененный узел, если失败, то возвращает null.
Грамматика:
elementNode.replaceChild(new_node,old_node)
Параметры | Описание |
---|---|
new_node | Обязателен. Определяет новый узел. |
old_node | Обязателен. Определяет подузел, который нужно заменить. |
Пример
Во всех примерах мы будем использовать XML файл books.xmlи JavaScript функция loadXMLDoc()。
Следующий фрагмент кода заменяет первый <title> элемент первого <book> элемента в "books.xml":
//проверить, является ли первый узел之子 элементом
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//создать элемент заголовка и узел текста
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Family Dinners");
//добавить узел текста в узел заголовка,
newNode.appendChild(newText);
//replace the last node with the new node
x.replaceChild(newNode, get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0; i<y.length; i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}
Вывод:
Семейные ужины Giada Harry Potter XQuery Kick Start Learning XML
Комментарий:Internet Explorer будет игнорировать пустые текстовые узлы, созданные между узлами (например, символы перевода строки), в то время как Mozilla этого не делает. Поэтому в данном примере мы создали функцию для создания правильных подузлов.
Совет:Для получения более подробной информации о различиях между браузерами IE и Mozilla, пожалуйста, обратитесь к разделу XML DOM на CodeW3C.com. Браузер DOM Этот раздел.