XML DOM Замена узлов
Метод replaceChild() заменяет указанный узел.
Свойство nodeValue заменяет текст в текстовом узле.
Попробуйте сами — примеры
В приведенных ниже примерах используется XML-файл books.xml .
В этом примере функция replaceChild() используется для замены первого узла <book>.
В этом примере используется свойство nodeValue для замены данных в текстовом узле.
Заменить узел элемента
Метод replaceChild() используется для замены узла.
Следующий фрагмент кода заменяет первый элемент <book>:
Пример
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement;
//create a book element, title element and a text node
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
//add the text node to the title node,
newTitle.appendChild(newText);
//add the title node to the book node
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0]
//replace the first book node with the new node
x.replaceChild(newNode,y);
Объяснение примера:
- Загрузите « books.xml » в xmlDoc
- Создайте новый узел элемента <book>
- Создайте новый узел элемента <title>
- Создайте новый текстовый узел с текстом «Записная книжка».
- Добавьте новый текстовый узел к новому узлу элемента <title>
- Добавьте узел нового элемента <title> к узлу нового элемента <book>
- Замените первый узел элемента <book> новым узлом элемента <book>
Заменить данные в текстовом узле
Метод replaceData() используется для замены данных в текстовом узле.
Метод replaceData() имеет три параметра:
- offset - С чего начать замену символов. Значение смещения начинается с нуля
- длина - сколько символов заменить
- string - строка для вставки
Пример
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"Easy");
Объяснение примера:
- Загрузите « books.xml » в xmlDoc
- Получить текстовый узел первого узла элемента <title>
- Используйте метод replaceData, чтобы заменить восемь первых символов из текстового узла на «Easy».
Вместо этого используйте свойство nodeValue
Заменить данные в текстовом узле проще с помощью свойства nodeValue.
Следующий фрагмент кода заменит значение текстового узла в первом элементе <title> на «Easy Italian»:
Пример
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Italian";
Объяснение примера:
- Загрузите « books.xml » в xmlDoc
- Получить текстовый узел первого узла элемента <title>
- Используйте свойство nodeValue, чтобы изменить текст текстового узла.
Подробнее об изменении значений узлов вы можете прочитать в главе «Изменить узел» .