🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# XML DOM DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法。 ## XML DOM XML DOM(XML Document Object Model)定义了访问和操作 XML 文档的标准方法。 XML DOM 把 XML 文档作为树结构来查看。 所有元素可以通过 DOM 树来访问。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。 在我们的 [XML DOM 教程](xml-tutorial.html)中,您可以学习更多有关 XML DOM 的知识。 ## HTML DOM HTML DOM 定义了访问和操作 HTML 文档的标准方法。 所有 HTML 元素可以通过 HTML DOM 来访问。 在我们的 [HTML DOM 教程](/htmldom/htmldom-tutorial.html)中,您可以学习更多有关 HTML DOM 的知识。. ## 加载一个 XML 文件 - 跨浏览器实例 下面的实例把 XML 文档("[note.xml](/try/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")的 &lt;to&gt; 元素中提取文本 "Tove",语法是: ``` getElementsByTagName("to")[0].childNodes[0].nodeValue ``` 请注意,即使 XML 文件只包含一个 &lt;to&gt; 元素,您仍然必须指定数组索引 [0]。这是因为 getElementsByTagName() 方法返回一个数组。 ## 加载一个 XML 字符串 - 跨浏览器实例 下面的实例把 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> ```