DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法。
XML DOM(XML Document Object Model)定义了访问和操作 XML 文档的标准方法。
XML DOM 把 XML 文档作为树结构来查看。
所有元素可以通过 DOM 树来访问。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。
HTML DOM 定义了访问和操作 HTML 文档的标准方法。
所有 HTML 元素可以通过 HTML DOM 来访问。
下面的实例把 XML 文档("note.xml")解析到 XML DOM 对象中,然后通过 JavaScript 提取一些信息:
- <html>
- <body>
- <h1>W3Schools Internal Note</h1>
- <div>
- <b>To:</b> <span id="to"></span><br />
- <b>From:</b> <span id="from"></span><br />
- <b>Message:</b> <span id="message"></span>
- </div>
-
- <script>
- if (window.XMLHttpRequest)
- {// code for IE7+, Firefox, Chrome, Opera, Safari
- xmlhttp=new XMLHttpRequest();
- }
- else
- {// code for IE6, IE5
- xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- xmlhttp.open("GET","note.xml",false);
- xmlhttp.send();
- xmlDoc=xmlhttp.responseXML;
-
- document.getElementById("to").innerHTML=
- xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
- document.getElementById("from").innerHTML=
- xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
- document.getElementById("message").innerHTML=
- xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
- </script>
-
- </body>
- </html>
如需从上面的 XML 文件("note.xml")的 <to> 元素中提取文本 "Tove",语法是:
getElementsByTagName("to")[0].childNodes[0].nodeValue
请注意,即使 XML 文件只包含一个 <to> 元素,您仍然必须指定数组索引 [0]。这是因为 getElementsByTagName() 方法返回一个数组。
下面的实例把 XML 字符串解析到 XML DOM 对象中,然后通过 JavaScript 提取一些信息:
- <html>
- <body>
- <h1>W3Schools Internal Note</h1>
- <div>
- <b>To:</b> <span id="to"></span><br />
- <b>From:</b> <span id="from"></span><br />
- <b>Message:</b> <span id="message"></span>
- </div>
-
- <script>
- txt="<note>";
- txt=txt+"<to>Tove</to>";
- txt=txt+"<from>Jani</from>";
- txt=txt+"<heading>Reminder</heading>";
- txt=txt+"<body>Don't forget me this weekend!</body>";
- txt=txt+"</note>";
-
- if (window.DOMParser)
- {
- parser=new DOMParser();
- xmlDoc=parser.parseFromString(txt,"text/xml");
- }
- else // Internet Explorer
- {
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- xmlDoc.async=false;
- xmlDoc.loadXML(txt);
- }
-
- document.getElementById("to").innerHTML=
- xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
- document.getElementById("from").innerHTML=
- xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
- document.getElementById("message").innerHTML=
- xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
- </script>
- </body>
- </html>