Различия в браузерах XML DOM
- Предыдущая страница Прогулка по узлам DOM
- Следующая страница Определение узлов DOM
Разные браузеры обрабатывают пустые текстовые узлы в XML DOM по-разному.
Пример
Ниже приведен пример с использованием файла XML books.xml.
Функция loadXMLDoc()находится вне JavaScript и используется для загрузки файлов XML.
- Показать длину списка узлов
- Этот пример показывает длину списка узлов. В IE и других браузерах результаты различаются.
- Пропуск пустых текстовых узлов между узлами
- В этом примере проверяется значение nodeType узла, и обрабатываются только элементные узлы.
Различия браузеров в анализе DOM
Все современные браузеры поддерживают стандарт W3C DOM.
Однако, между браузерами есть различия. Важные различия заключаются в двух пунктах:
- Способы загрузки XML
- Способы обработки пробельных символов и новых строк
В «Анализ XML DOM» Это раздел, в котором уже было объяснено, как загружать XML.
В этом разделе мы расскажем о различных способах обработки пробельных символов и новых строк.
DOM - пробельные символы и новые строки
XML часто содержит пробельные символы или символы новой строки между узлами. Это часто встречается при использовании простых редакторов (например, блокнота).
Ниже приведен пример (отредактированный в блокноте), в котором между строками содержится CR/LF, и перед каждым подузлом стоят два пробела:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox и другие браузеры обрабатывают пустые пробельные символы или символы новой строки как узлы текста, в то время как Internet Explorer этого не делает.
Следующий фрагмент кода показывает, сколько подузлов имеет корневой элемент (books.xml):
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Number of child nodes: " + x.length);
Пример的解释:
- Используя loadXMLDoc() "books.xml"Загрузить в xmlDoc"
- Получите подузлы корневого элемента
- Вывод количества подузлов
Результат зависит от используемого браузера. Firefox выдает 9, а IE выдает 4.
Пропуск пустых текстовых узлов между узлами
Чтобы пропустить пустые текстовые узлы между элементами, необходимо проверить тип узла. Тип элемента равен 1:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// только обрабатывать узлы элементов document.write(x[i].nodeName); document.write("<br />"); } }
Пример的解释:
- Используя loadXMLDoc() "books.xml"Загрузить в xmlDoc"
- Получите подузлы корневого элемента
- Проверьте тип каждого подузла. Если тип узла равен "1", то это узел элемента
- Предыдущая страница Прогулка по узлам DOM
- Следующая страница Определение узлов DOM