Метод replaceChild() в XML DOM

Референтное руководство по объекту Node

Определение и использование

Метод replaceChild() может заменить один подузел другим.

Если замена успешна, этот метод возвращает замененный узел, если замена не успешна,则在озвращает NULL.

Синтаксис:

nodeObject.replaceChild(new_node,old_node)
Параметр Описание
new_node Обязателен. Указывается новый узел.
old_node Обязателен. Указывается узел, который нужно заменить.

Советы и комментарии

Комментарий:Internet Explorer будет игнорировать空白 текстовые узлы, созданные между узлами (например, символы перевода строки), в то время как Mozilla этого не делает. Поэтому в следующем примере мы будем использовать функцию для проверки типа узла первого узла ребенка.

Элементные узлы имеют тип узла 1, поэтому если первый узел ребенка не является элементом, он перемещается к следующему узлу и продолжает проверять, является ли этот узел элементом. Этот процесс продолжается до тех пор, пока не будет найден первый элементный узел ребенка. Таким образом, мы можем получить правильный метод в Internet Explorer и Mozilla.

Совет:Если вы хотите узнать больше о различиях между XML DOM в Internet Explorer и Mozilla, пожалуйста, посетите наш браузер DOM разделы.

пример

Во всех примерах мы будем использовать XML-файл books.xmlи JavaScript-функции loadXMLDoc()

Следующий фрагмент кода можно заменить элементом <title> первого <book< элемента:

//проверка, является ли первый узел ребенка элементом
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
возврат x;
}
xmlDoc=loadXMLDoc("books.xml");
//создание элемента заголовка и узла текста
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Семейные ужины Гиады");
//добавление текстового узла в узел заголовка,
newNode.appendChild(newText);
//замена первого узла новым узлом
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//вывод всех заголовков
var y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
  {
  document.write(y[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Вывод:

Семейные ужины Гиады
Harry Potter
XQuery Kick Start
Learning XML

Референтное руководство по объекту Node