ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

XML DOM ブラウザ間の違い

« 前章へ 次章へ »

DOM パースでのブラウザ間の違い

最新の全ブラウザは、W3C DOM の利用をサポートしています。

しかし、ブラウザ間には多少の違いが有ります。最も重要な相違の1つは、次の点にあります:

  • 空白と改行の処理方法

DOM - 空白と改行

XMLには、たびたび改行とか空白文字がノードの間に含まれています。文書がノートパッドのような簡単なエディタで編集する時には、よくあるケースです。

次の(ノートパッドで編集した)例には、各行間にCR/LF(改行)と各子ノードの前には2つのスペースが含まれています:

<book>
  <title>Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

Internet Explorerは、他のブラウザとは異なり、空白や改行を空のテキストノードとしては取扱いません。

次のコードは(books.xmlの)ルート要素が子ノードを幾つ持っているかを表示します:

xmlDoc=loadXMLDoc("books.xml");

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

試してください »

例の説明:

  1. loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
  2. ルート要素の子ノードを取得します
  3. 子ノード数を出力します。 結果は、どのブラウザを使うかで異ってきます。IEは 4 を表示しますが、他は 9 を表示します。

« 前章へ 次章へ »