XML DOM: расширенный XML DOM: расширенный Ранее в этом руководстве мы представили XML DOM и использовали метод getElementsByTagName() XML DOM для получения данных из XML-документа. В этой главе мы объединим некоторые другие важные методы XML DOM. Вы можете узнать больше о XML DOM в нашем руководстве по XML DOM. Получите значение элемента в XML-файле, используемом в следующем примере: book.xml. В следующем примере извлекается текстовое значение первого элемента <title>: Пример
txt = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
Попробуйте »
В следующем примере извлекается текстовое значение атрибута «lang» первого элемента <title>:
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
Попробуйте »
В следующем примере изменяется текстовое значение первого элемента <title>:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Легкое приготовление";
Попробуйте »
Метод setAttribute() XML DOM можно использовать для изменения значения существующего атрибута или для создания нового атрибута.
В следующем примере создается новый атрибут (edition="first") и добавляется к каждому элементу <book>:
x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++){x[i].setAttribute("edition","first");}
Попробуйте »
Метод createElement() XML DOM создает новый узел элемента.
Метод createTextNode() XML DOM создает новый текстовый узел.
Метод AppendChild() XML DOM добавляет дочерний узел к узлу (после последнего дочернего узла).
Чтобы создать новый элемент с текстовым содержимым, одновременно создайте новый узел элемента и новый текстовый узел, а затем добавьте его к существующему узлу.
В следующем примере создается новый элемент (<edition>) со следующим текстом: Сначала, а затем он добавляется к первому элементу <book>:
newel=xmlDoc.createElement("edition");newtext=xmlDoc.createTextNode("First");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("book");x[0].appendChild(newel);
Попробуйте »
Пример объяснения
Создайте элемент <edition>
Создайте текстовый узел со значением «Первый».
Добавьте этот текстовый узел к новому элементу <edition>.
Добавьте элемент <edition> к первому элементу <book>.
В следующем примере удаляется первый узел первого элемента <book>:
x=xmlDoc.getElementsByTagName("book")[0];x.removeChild(x.childNodes[0]);
Попробуйте »
Примечание. Результаты приведенного выше примера могут различаться в зависимости от используемого браузера. Firefox рассматривает символы новой строки как пустые текстовые узлы, а Internet Explorer — нет. Вы можете прочитать больше об этой проблеме и о том, как ее избежать, в нашем руководстве по XML DOM.