Властивості firstchild, lastchild, nextsibling, parentnode і previoussibling елемента xml
Привіт, шановні відвідувачі okITgo.ru! Сьогодні пропоную розглянути властивості XML об'єкта Елемент, що дозволяють отримати доступ до споріднених вузлів, а саме firstChild - перший дочірній елемент, lastChild - останній дочірній елемент, nextSibling - наступний сестринський вузол, parentNode - батьківський елемент і previousSibling - попередній сестринський вузол.
властивість firstChild
Визначення та Використання
Властивість firstChild повертає перший дочірній вузол обраного вузла
Якщо обраний вузол не має дітей, це властивість поверне NULL.
Поради та Зауваження
Зауваження: Firefox і більшість інших браузерів будуть трактувати порожні пробільні символи і переходи на новий рядок як текстові вузли, на відміну від браузера Internet Explorer. Таким чином, в прикладі нижче є функція, яка перевіряє тип вузла першого дочірнього елемента.
Вузли елементів мають тип вузла 1, так що якщо перший дочірній вузол не є вузлом елемента, функція переходить до наступного вузла і перевіряє його (чи є він елементом). Це продовжується до тих пір, поки перший дочірній вузол (який повинен бути вузлом елемента) не буде знайдений. У підсумку, результат роботи коду буде однаковим у всіх браузерах.
Наступний фрагмент коду завантажує "books.xml" в xmlDoc за допомогою loadXMLDoc () і отримує перший дочірній вузол:
// перевірка того, що перший дочірній вузол є елементом
function get_firstchild (n)
x = n.firstChild;
while (x.nodeType! = 1)
x = x.nextSibling;
>
return x;
>
for (i = 0; i
// Обробляти тільки вузли - елементи
document.write (firstNode.childNodes [i] .nodeName);
document.write ( "=");
document.write (firstNode.childNodes [i] .childNodes [0] .nodeValue);
document.write ( "");
>
>
Висновок коду вище буде:
властивість lastChild
Визначення та Використання
Властивість lastChild повертає останній дочірній вузол обраного елемента
Якщо обраний вузол не має дітей, це властивість повертає NULL.
Поради та Зауваження
Зауваження: Firefox і більшість інших браузерів будуть трактувати порожні пробільні символи і переходи на новий рядок як текстові вузли, на відміну від браузера Internet Explorer. Таким чином, в прикладі нижче є функція, яка перевіряє тип вузла останнього дочірнього елемента.
Вузли елементів мають тип вузла 1, так що якщо останній дочірній вузол не є вузлом елемента, функція переходить до попереднього вузла і перевіряє його (чи є він елементом). Це продовжується до тих пір, поки останній дочірній вузол (який повинен бути вузлом елемента) не буде знайдений. У підсумку, результат роботи коду буде однаковим у всіх браузерах.
Щоб прочитати більше про відмінності між браузерами, дивіться пост DOM Браузери.
Наступний фрагмент коду завантажує "" в xmlDoc, використовуючи loadXMLDoc (). і знаходить останній дочірній вузол:
// перевірка, що останній дочірній вузол є вузлом елемента
function get_lastchild (n)
x = n.lastChild;
while (x.nodeType! = 1)
x = x.previousSibling;
>
return x;
>
for (i = 0; i
// Обробляти тільки вузли-елементи
document.write (lastNode.childNodes [i] .nodeName);
document.write ( "=");
document.write (lastNode.childNodes [i] .childNodes [0] .nodeValue);
document.write ( "");
>
>
Висновок коду вище буде:
властивість nextSibling
Визначення та Використання
Властивість nextSibling повертає наступний сестринський вузол (наступний вузол на тому ж самому рівні дерева) обраного елемента
Якщо такого вузла немає, це властивість поверне null.
Поради та Зауваження
Зауваження: Firefox і більшість інших браузерів будуть трактувати порожні пробільні символи і переходи на новий рядок як текстові вузли, на відміну від браузера Internet Explorer. Таким чином, в прикладі нижче є функція, яка перевіряє тип вузла наступного сестринського вузла.
Вузли елементів мають тип вузла 1, так що якщо наступний сестринський вузол не є вузлом елемента, функція переходить до йде за ним вузла і перевіряє його (чи є він елементом). Це продовжується до тих пір, поки наступний сестринський вузол (який повинен бути вузлом елемента) не буде знайдений. У підсумку, результат роботи коду буде однаковим у всіх браузерах.
Щоб прочитати більше про відмінності між браузерами, дивіться пост DOM Браузери.
Наступний фрагмент коду завантажує "books.xml" в xmlDoc, використовуючи loadXMLDoc (). і отримує наступний сестринський вузол першого елемента
// перевірка, що наступний сестринський вузол є вузлом-елементом
function get_nextsibling (n)
x = n.nextSibling;
while (x.nodeType! = 1)
x = x.nextSibling;
>
return x;
>
x = xmlDoc.getElementsByTagName ( "title") [0];
document.write (x.nodeName);
document.write ( "=");
document.write (x.childNodes [0] .nodeValue);
document.write ( "Наступний сестринський вузол:");
document.write (y.nodeName);
document.write ( "=");
document.write (y.childNodes [0] .nodeValue);
Висновок коду вище буде:
title = Самогон та інші спиртні напої домашнього приготування
Наступний сестринський вузол: author = Байдакова Ірина