欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

XML DOM 瀏覽器差異

不同的瀏覽器在 XML DOM 中處理空文本節(jié)點的方式是不同的。

實例

下面的例子使用 XML 文件 books.xml

函數(shù) loadXMLDoc(),位于外部 JavaScript 中,用于加載 XML 文件。

顯示節(jié)點列表的長度
本例顯示了一個節(jié)點列表的長度。在 IE 和其他瀏覽器中,結(jié)果是不同的。
忽略節(jié)點間的空文本
本例檢查節(jié)點的 nodeType,且僅處理元素節(jié)點。

DOM 解析中的瀏覽器差異

所有現(xiàn)代瀏覽器都支持 W3C DOM 規(guī)范。

不過,瀏覽器之間是有差異的。重要的區(qū)別有兩點:

  • 加載 XML 的方式
  • 處理空白和換行的方式

在 “解析 XML DOM” 這一節(jié),已經(jīng)解釋了加載 XML 的不同方式。

在本節(jié)中,我們將講解處理空白和換行的不同方式。

DOM - 空白和換行

XML 經(jīng)常在節(jié)點之間含有換行或空白字符。這是在使用簡單的編輯器(比如記事本)時經(jīng)常出現(xiàn)的情況。

下面的例子(由記事本編輯)在每行之間含有 CR/LF,在每個子節(jié)點之前含有兩個空格:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Firefox,以及其他一些瀏覽器,會把空的空白或換行作為文本節(jié)點來處理,而 Internet Explorer 不會這樣。

下面的代碼片段顯示 (books.xml 的) 根元素?fù)碛卸嗌賯子節(jié)點:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;
document.write("Number of child nodes: " + x.length);

例子解釋:

  • 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  • 獲取根元素的子節(jié)點
  • 輸出子節(jié)點數(shù)目

結(jié)果取決于所使用的瀏覽器。Firefox 輸出 9,而 IE 輸出 4。

TIY

忽略節(jié)點間的空文本

如需忽略元素節(jié)點之間的空文本節(jié)點,需要檢查節(jié)點類型。元素節(jié)點的類型是 1:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;

for (i=0;i<x.length;i++)
{ 
if (x[i].nodeType==1)
  {// only process element nodes 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

例子解釋:

  • 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  • 獲取根元素的子節(jié)點
  • 檢查每個子節(jié)點的節(jié)點類型。如果節(jié)點類型是 "1",則是元素節(jié)點

TIY(簡單) 或者 TIY(完整)