新鲜人BLOG

2008-4-7

了解XML文档对象模型

Posted by: gunman In: 技術文摘

1)DOMDocument对象:该对象描述全部的文档映射表,文档映射表包含了XML文档里的所有信息。
   常用方法
   常用属性

2)IXMLDOMNode对象:该对象描述XML文档里的节点。这个节点可以是元素、属性、处理指令、文本或者其他存储在XML文档里的信息。
   常用方法
   常用属性

3)IXMLDOMNodeList对象:该对象描述IXMLDOMNode对象的集合,并可使用该对象遍历这个集合。IXMLDOMNodeList对象里的节点集合可以用数值该问。
   常用方法
   常用属性

4)IXMLDOMParseError对象:该对象用来验证XML文档对于Schema或DTD的正确性,并且取得在验证过程中产生的错误信息。
   常用方法
   常用属性

* DOMDocument对象常用方法:
a)createElement(elementName) ---- 该方法以元素名为参数创建一个用此参数命名的元素节点。(不能创建名称空间受限制的元素。如果要创建名称空间受限制的元素,必须使用createNode()方法)
例: doc.createElement("PRODUCT")

b)createAttribute(attributeName) ---- 该方法以属性名为参数创建一个用此参数命名的属性节点。
例: doc.createAttribute("PRODID")

c)createComment(text) ---- 该方法以字符串为参数创建一个包含此字符串的注释节点。
例: doc.createComment("This is an XML document")

d)createTextNode(text) ---- 该方法以字符串为参数创建一个包含指定字符串的正文节点。
例: doc.createTextNode("Sony Workman")

e)createNode(type,name,namespace-URI) ---- 该方法创建元素节点。三个参数,"类型"参数是variant型,既可以是字符串也可以是整型。第二个参数是字符串,它代表将要创建的节点的名字。第三个参数是代表namespace-URI的字符串。如果namespace-URI为空字符串,则新创建的节点就没有名称空间URI
例: doc.createNode("element","PRODUCT","")
     doc.createNode("element","prod: PRODUCT","blog.csdn.net/fcrpg2005")
     doc.createNode(1,"PRODUCT","")

f)getElementsByTagName(elementName) ---- 该方法以字符串为参数。这个字符串是要搜索的元素。返回IXMLDOMNodeList对象,包含指定元素名称的节点的集合。可以用这些节点信来浏览操纵存储在指定元素中的值。
例: doc.getEelmentsByTagName("PRICE")

g)load(XMLdocument) ---- 该方法以字符串为参数。这个字符串是XML文档的地址(HTTP地址或本地地址)
例: doc.load("http://blog.csdn.net/fcrpg2005/product.xml")
  doc.load("D:product.xml")

h)loadXML(string) ---- 该方法把成形的XML代码或整个XML文档载入DOMDocument对象中。
例: doc.loadXML("<?xml version=1.0><PRODUCTS><PRODUCT><name>Barbie Doll</name></PRODUCT></PRODUCTS>")

i)transformNode(stylesheet object) ---- 该方法以风格表对象为参数。通过把相应的风格表加到XML文档上来处理节点,然后返回转换结果。
例: doc.transformNode("product.xsl")

j)appendChild(child node) ---- 该方法以对象为参数。把这个对象作为最后的子节点加在XML文档上。createNode() 或者 createElement()方法可以创建节点或元素。但是它们不会把新建的节点加到文档树形结构上。而是需要用appendChild()方法,insertBefore()方法,或者replaceChild()方法把新建的节点加上去。
例: doc.appendChild(root) ---- PS: root是一个用createNode()或createElement()方法创建的节点

k)save(destination) ---- 该方法以对象为参数。这个对象可以是一个DOMDocument对象也可以是一个文件名。save()方法把DOMDocument对象保存在指定的目的地。
例: doc.save("http://blog.csdn.net/fcrpg2005/product.xml")

* DOMDocument对象常用属性:
a)async ---- 该属性用来指定是否允许异步加载。属性async取布尔值。
例: doc.async = false  --同步

b)childNodes ---- 该属性返回属于一个父节点的子节点集合(即返回当前元素所有子元素的数组对象)。该属性的值是对象IXMLDOMNodeList的类型。
例: var firstelem = doc.childNodes.item(1)

c)documentElement ---- 该属性包含用对象DOMDocument表示的XML文档的根元素。
例: var root = doc.documentElement

d)firstChild ---- 该属性返回父元素的第一个子节点。该元素是只读的。
例: var firstelem = doc.firstChild

e)lastChild ---- 该属性返回父元素的最后一个子节点。
例: var lastelem = doc.lastChild

f)parseError ---- 该属性返回一个包含大部分最近产生的错误信息的对象。
例: var error = doc.parseError

g)readyState ---- 该属性返回XML文档的状态。它显示这个文档是否已完全载入。4个状态:0-未初始化、1-正在加载、2-已加载、3-交互中、4-已完成
例: var stateInfo = doc.readState
  if(stateInfo == 4) { // Document loading
   // Coding
  }

h)xml ---- 该属性返回一个节点以有其子节点的XML表示。
例: document.write(doc.xml)

i)validateOnParse ---- 该属性指定解析器是否在解析XML文档时验证其合法性。
例: doc.validateOnParse = true

** IXMLDOMNode对象常用方法:
a)appendChild(newChild) ---- 该方法把节点newChild加到该方法使用的节点的子节点的末尾。

b)insertBefore(newNode, refNode) ---- 该方法把一个新节点newNode插到一个已存在节点refNode之前。

c)removeChild(nodeName) ---- 该方法删除指定的节点。

d)replaceChild(newNode, oldNode) ---- 该方法用新节点newNode替换旧节点oldNode。

e)hasChildNodes() ---- 如果IXMLDOMNode对象有子节点,该方法返回值为真(true)。

f)cloneNode(Boolean) ---- 如果参数Boolean为真,该方法返回IXMLDOMNode对象一个完全克隆。该克隆节点包含和原节点一样的子节点。

** IXMLDOMNode对象常用属性:
a)nodeName ---- 返回节点名称。

b)nodeType ---- 返回节点类型。

c)nodeValue ---- 返回节点包含的文本。

d)childNodes ---- 返回用IXMLDOMNode对象表示的节点的子节点集。

e)firstChild ---- 返回该节点的第一个子节点。

f)lastChild ---- 返回该节点的最后一个子节点。

g)text ---- 返回IXMLDOMNode在IXMLDOMNode对象中的文本。

h)xml ---- 返回IXMLDOMNode对象的XML代码

*** IXMLDOMNodeList对象常用方法:
a)item(number) ---- 该方法返回指定数值对应位置的节点。

b)nextNode() ---- 该方法返回节点集的下一个节点。

*** IXMLDOMNodeList对象常用属性:
length ---- 获得节点集中节点的个数。

**** IXMLDOMParseError对象常用属性:
a)errorCode ---- 该属性包含类型为长整型的错误代码。如果XML文档没有错误,该属性返回0。

b)reason ---- 该属性包含解释错误原因的字符串。

c)line ---- 该属性存储代表错误行数的长整型。

d)linePos ---- 该属性存储代表错误行位置的长整型。

e)srcText ---- 该属性包含引起错误的那一行字符串。


本篇文章来源于 站长资讯网 原文链接:http://xml.chinahtml.com/2008/XML-120739458317890_2.shtml

Tags:

0 Responses to "了解XML文档对象模型"

Comment Form

Categories

Archives

Misc

links

网站收藏

Previous


Flickr PhotoStream

    flickrRSS probably needs to be setup

About

This is an example, here you can edit information about yourself or your site so readers know where you are.

最新评论