疯狂XML学习笔记(5)-----------XML DOM

互联网 17-2-21
DOM (Document Object Model,文档对象模型)定义访问和操作文档的一套标准方法。

XML DOM

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

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

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

xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
  • xmlDoc -由解析器创建的 XML 文档

  • getElementsByTagName("to")[0] - 第一个 <to> 元素

  • childNodes[0] - <to> 元素的第一个子元素(文本节点)

  • nodeValue - 节点的值(文本本身)

HTML DOM

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

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

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

document.getElementById("to").innerHTML=
  • document - HTML 文档

  • getElementById("to") - 其中的 id="to" 的 HTML 元素

  • innerHTML - HTML 元素的内部文本

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

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

<html>  <head>  <script type="text/javascript">  function parseXML()  {  try //Internet Explorer    {    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");    }  catch(e)    {    try //Firefox, Mozilla, Opera, etc.      {      xmlDoc=document.implementation.createDocument("","",null);      }    catch(e)      {      alert(e.message);      return;      }    }  xmlDoc.async=false;  xmlDoc.load("note.xml");    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>  </head>    <body onload="parseXML()">  <h1>W3School.com.cn Internal Note</h1>  <p><b>To:</b> <span id="to"></span><br />  <b>From:</b> <span id="from"></span><br />  <b>Message:</b> <span id="message"></span>  </p>  </body>  </html>

输出:

To: GeorgeFrom: JohnMessage: Don't forget the meeting!

重要注释

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

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

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

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

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

<html>  <head>  <script type="text/javascript">  function parseXML()  {  text="<note>";  text=text+"<to>George</to>";  text=text+"<from>John</from>";  text=text+"<heading>Reminder</heading>";  text=text+"<body>Don't forget the meeting!</body>";  text=text+"</note>";  try //Internet Explorer    {    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");    xmlDoc.async="false";    xmlDoc.loadXML(text);    }    catch(e)    {    try // Firefox, Mozilla, Opera, etc.      {      parser=new DOMParser();      xmlDoc=parser.parseFromString(text,"text/xml");      }    catch(e)      {      alert(e.message);      return;      }    }  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>  </head>    <body onload="parseXML()">  <h1>W3School.com.cn Internal Note</h1>  <p><b>To:</b> <span id="to"></span><br />  <b>From:</b> <span id="from"></span><br />  <b>Message:</b> <span id="message"></span>  </p>  </body>  </html>

输出:

To: GeorgeFrom: JohnMessage: Don't forget the meeting!

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

以上就是疯狂XML学习笔记(5)-----------XML DOM的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:疯狂XML学习笔记(4)------------XML的对手 JSON

相关资讯