Метод replaceChild() в XML DOM
Определение и использование
Метод 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