您现在的位置: 365建站网 > 建站教程 > XML 教程 > XML DOM

XML DOM

此节有 177 人学习过     参与评论

DOM (Document Object Model,文档对象模型)定义了访问和操作文档的标准方法。

XML DOM

XML DOM (XML Document Object Model) 定义了访问和操作 XML 文档的标准方法。

DOM 把 XML 文档作为树结构来查看。能够通过 DOM 树来访问所有元素。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。

在下面的例子中,我们使用 DOM 引用从 <to> 元素中获取文本:

</>code

  1. xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
  • xmlDoc -由解析器创建的 XML 文档
  • getElementsByTagName("to")[0] - 第一个 <to> 元素
  • childNodes[0] - <to> 元素的第一个子元素(文本节点)
  • nodeValue - 节点的值(文本本身)

您可以在 365jz 的 XML DOM 教程 中学习更多相关知识。

HTML DOM

HTML DOM (HTML Document Object Model) 定义了访问和操作 HTML 文档的标准方法。

可以通过 HTML DOM 访问所有 HTML 元素。

在下面的例子中,我们使用 DOM 引用来改变 id="to" 的 HTML 元素的文本:

</>code

  1. document.getElementById("to").innerHTML=
  • document - HTML 文档
  • getElementById("to") - 其中的 id="to" 的 HTML 元素
  • innerHTML - HTML 元素的内部文本

您可以在 365jz 的 HTML DOM 教程 中学习更多相关知识。

解析 XML 文件 - 跨浏览器实例

下列代码把一个 XML 文档 ("note.xml") 载入 XML 解析器中:

</>code

  1. <html>
  2. <body>
  3. <h1>365jz.com.cn Internal Note</h1>
  4. <p><b>To:</b> <span id="to"></span><br />
  5. <b>From:</b> <span id="from"></span><br />
  6. <b>Message:</b> <span id="message"></span>
  7. <script type="text/javascript">
  8. if (window.XMLHttpRequest)
  9. {// code for IE7+, Firefox, Chrome, Opera, Safari
  10. xmlhttp=new XMLHttpRequest();
  11. }
  12. else
  13. {// code for IE6, IE5
  14. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15. }
  16. xmlhttp.open("GET","note.xml",false);
  17. xmlhttp.send();
  18. xmlDoc=xmlhttp.responseXML;
  19. document.getElementById("to").innerHTML=
  20. xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
  21. document.getElementById("from").innerHTML=
  22. xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
  23. document.getElementById("message").innerHTML=
  24. xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
  25. </script>
  26. </body>
  27. </html>

输出:

</>code

  1. 365jz.com.cn Internal Note
  2. To: George
  3. From: John
  4. Message: Don't forget the meeting!

亲自试一试

重要注释

如需从 XML 中提取文本 "John",语法是:

</>code

  1. getElementsByTagName("from")[0].childNodes[0].nodeValue

在上例中,只有一个 <from> 标签,但是仍然需要规定数组的下标 [0],这是因为 getElementsByTagName() 方法会返回包含所有 <from> 节点的数组。

解析 XML 字符串 - 跨浏览器实例

下面的代码加载并解析一个 XML 字符串:

</>code

  1. <html>
  2. <body>
  3. <h1>365jz.com.cn Internal Note</h1>
  4. <p><b>To:</b> <span id="to"></span><br />
  5. <b>From:</b> <span id="from"></span><br />
  6. <b>Message:</b> <span id="message"></span></p>
  7. <script>
  8. txt="<note>";
  9. txt=txt+"<to>George</to>";
  10. txt=txt+"<from>John</from>";
  11. txt=txt+"<heading>Reminder</heading>";
  12. txt=txt+"<body>Don't forget the meeting!</body>";
  13. txt=txt+"</note>";
  14. if (window.DOMParser)
  15. {
  16. parser=new DOMParser();
  17. xmlDoc=parser.parseFromString(txt,"text/xml");
  18. }
  19. else // Internet Explorer
  20. {
  21. xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  22. xmlDoc.async="false";
  23. xmlDoc.loadXML(txt);
  24. }
  25. document.getElementById("to").innerHTML=
  26. xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
  27. document.getElementById("from").innerHTML=
  28. xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
  29. document.getElementById("message").innerHTML=
  30. xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
  31. </script>
  32. </body>
  33. </html>

输出:

</>code

  1. 365jz.com.cn Internal Note
  2. To: George
  3. From: John
  4. Message: Don't forget the meeting!

亲自试一试

注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (177人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号