xmlDom

加载并解析xml文件:

<script type="text/javascript">

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)}

  }

try

  {

  xmlDoc.async=false;

  xmlDoc.load("/example/xdom/books.xml");

  document.write("xmlDoc is loaded, ready for use");

  }

catch(e) {alert(e.message)}

</script>

 

加载并解析xml字符串

<script type="text/javascript">

text="<bookstore>"

text=text+"<book>";

text=text+"<title>Harry Potter</title>";

text=text+"<author>J K. Rowling</author>";

text=text+"<year>2005</year>";

text=text+"</book>";

text=text+"</bookstore>";

 

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)}

  }

try

  {

  document.write("xmlDoc 已加载,可以使用。");

  }

catch(e) {alert(e.message)}

</script>

 

微软的 XML 解析器内建于 Internet Explorer 5 及更高版本中。

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.load("books.xml");

在 Firefox 及其他浏览器中的 XML 解析器xmlDoc=document.implementation.createDocument("","",null);

xmlDoc.async="false";

xmlDoc.load("books.xml")

 

XML DOM 属性

典型的 DOM 属性:

x.nodeName - x 的名称

x.nodeValue - x 的值

x.parentNode - x 的父节点

x.childNodes - x 的子节点

x.attributes - x 的属性节点

  firstChild

  lastChild

  nextSibling

  previousSibling

注释:在上面的列表中,x 是一个节点对象。

XML DOM 方法

x.getElementsByTagName(name) - 获取带有指定标签名称的所有元素

x.appendChild(node) - 向 x 插入子节点

x.removeChild(node) - 从 x 删除子节点

注释:在上面的列表中,x 是一个节点对象。

 

节点集有length 属性。

nodeType 属性获取节点类型

nextSibling 属性节点的下一个兄弟节点

在 XML 文档对象模型 (DOM) 中,每个节点都是一个对象。

nodeName 属性

nodeName 属性规定节点的名称。

nodeName 是只读的

元素节点的 nodeName 与标签名相同

属性节点的 nodeName 是属性的名称

文本节点的 nodeName 永远是 #text

文档节点的 nodeName 永远是 #document

nodeValue 属性

nodeValue 属性规定节点的值。

元素节点的 nodeValue 是 undefined

文本节点的 nodeValue 是文本自身

属性节点的 nodeValue 是属性的值

nodeType 属性

nodeType 属性规定节点的类型。

nodeType 是只读的。

最重要的节点类型是:

元素1    属性 2     文本3    注释8   文档9

所有现代浏览器都支持 W3C DOM 规范。不过,浏览器之间是有差异的。重要的区别有两点:

加载 XML 的方式

处理空白和换行的方式

 

Firefox,以及其他一些浏览器,会把空的空白或换行作为文本节点来处理,而 Internet Explorer 不会这样。

 

getAttribute() 方法返回属性的值。

获取属性值 - getAttributeNode()

nodeValue 属性用于改变节点值。

setAttribute(“old”,”new”) 方法用于改变属性的值。

removeChild(node) 方法删除指定节点。

removeAttribute() 方法删除指定属性。

removeAttributeNode(node) 方法通过使用 Node 对象作为参数,来删除属性节点。

replaceChild() 方法替换指定节点。

替换文本节点中的数据

replaceData() 方法用于替换文本节点中的数据。

replaceData() 方法有三个参数:

offset - 在何处开始替换字符。Offset 值以 0 开始。

length - 要替换多少字符

string - 要插入的字符串

创建新的元素节点

createElement() 方法创建新的元素节点:

创建新的属性节点

createAttribute() 用于创建新的属性节点:

通过使用 setAttribute() 来创建属性

由于 setAttribute() 可以在属性不存在的情况下创建新的属性,可以使用这个方法来创建新属性。

创建文本节点

createTextNode() 方法创建新的文本节点:

创建一个 CDATA Section 节点

createCDATASection() 方法创建一个新的 CDATA section 节点。

创建注释节点

createComment() 方法创建一个新的注释节点。

添加节点 - appendChild()

appendChild() 方法向已存在的节点添加子节点。

新节点会添加(追加)到任何已存在的子节点之后。

注释:如果节点的位置很重要,请使用 insertBefore() 方法。

插入节点 - insertBefore()

insertBefore() 方法用于在指定的子节点之前插入节点。

在被添加的节点的位置很重要时,此方法很有用。

insertBefore() 的第二个参数是 null,新节点将添加到最后一个已有的子节点之后。

添加新属性

addAtribute() 这个方法是不存在的。

如果属性不存在,则 setAttribute() 可创建一个新的属性:

向文本节点添加文本 - insertData()

insertData() 方法将数据插入已有的文本节点中。

insertData() 方法有两个参数:

offset - 在何处开始插入字符(以 0 开始)

string - 要插入的字符串

复制节点

cloneNode() 方法创建指定节点的副本。

cloneNode() 方法有一个参数(true 或 false)。该参数指示被复制的节点是否包括原节点的所有属性和子节点。

XMLHttpRequest 对象提供了在网页加载后与服务器进行通信的方法。

XMLHttpRequest 对象是开发者的梦想,因为您能够:

在不重新加载页面的情况下更新网页

在页面已加载后从服务器请求数据

在页面已加载后从服务器接收数据

在后台向服务器发送数据

创建 XMLHttpRequest 对象

通过一行简单的 JavaScript 代码,我们就可以创建 XMLHttpRequest 对象。

在所有现代浏览器中(包括 IE 7):

xmlhttp=new XMLHttpRequest()

在 Internet Explorer 5 和 6 中:

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

该参数规定请求是否异步处理。

True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。

 

posted @ 2015-06-18 15:40  秋日的私语(且行且珍惜)  阅读(117)  评论(0编辑  收藏  举报