XML文档对象模型_第1页
XML文档对象模型_第2页
XML文档对象模型_第3页
XML文档对象模型_第4页
XML文档对象模型_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XML文档对象模型1)DOMDocument对象:该对象描述全部的文档映射表,文档映射表包含了XML文档里的所有信息。 常用方法 常用属性2)IXMLDOMNode对象:该对象描述XML文档里的节点。这个节点可以是元素、属性、处理指令、文本或者其他存储在XML文档里的信息。 常用方法 常用属性3)IXMLDOMNodeList对象:该对象描述IXMLDOMNode对象的集合,并可使用该对象遍历这个集合。IXMLDOMNodeList对象里的节点集合可以用数值该问。 常用方法 常用属性4)IXMLDOMParseError对象:该对象用来验证XML文档对于Schema或DTD的正确性,并且取得在

2、验证过程中产生的错误信息。 常用方法 常用属性* DOMDocument对象常用方法:a)createElement(elementName) - 该方法以元素名为参数创建一个用此参数命名的元素节点。(不能创建名称空间受限制的元素。如果要创建名称空间受限制的元素,必须使用createNode()方法)例: doc.createElement("PRODUCT"),有些用到:doc-> creatElement('item')b)createAttribute(attributeName) - 该方法以属性名为参数创建一个用此参数命名的属性节点。例: d

3、oc.createAttribute("PRODID") xml中表现形式:<item upload_name="上3"><download_name>下载通道名称</download_name></item>c)createComment(text) - 该方法以字符串为参数创建一个包含此字符串的注释节点。例: doc.createComment("This is an XML document")<item><!-upload_name-><downlo

4、ad_name>下载通道名称</download_name></item>d)createTextNode(text) - 该方法以字符串为参数创建一个包含指定字符串的正文节点。例: doc.createTextNode("Sony Workman")e)createNode(type,name,namespace-URI) - 该方法创建元素节点。三个参数,"类型"参数是variant型,既可以是字符串也可以是整型。第二个参数是字符串,它代表将要创建的节点的名字。第三个参数是代表namespace-URI的字符串。如果na

5、mespace-URI为空字符串,则新创建的节点就没有名称空间URI例: doc.createNode("element","PRODUCT","") doc.createNode("element","prod: PRODUCT"," doc.createNode(1,"PRODUCT","")f)getElementsByTagName(elementName) - 该方法以字符串为参数。这个字符串是要搜索的元素。返回IXMLDOMNodeL

6、ist对象,包含指定元素名称的节点的集合。可以用这些节点信来浏览操纵存储在指定元素中的值。例: doc.getEelmentsByTagName("PRICE")g)load(XMLdocument) - 该方法以字符串为参数。这个字符串是XML文档的地址(HTTP地址或本地地址)例: doc.load(" doc.load("D:product.xml")h)loadXML(string) - 该方法把成形的XML代码或整个XML文档载入DOMDocument对象中。例: doc.loadXML("<?xml version=

7、1.0><PRODUCTS><PRODUCT><name>Barbie Doll</name></PRODUCT></PRODUCTS>")i)transformNode(stylesheet object) - 该方法以风格表对象为参数。通过把相应的风格表加到XML文档上来处理节点,然后返回转换结果。例: doc.transformNode("product.xsl")j)appendChild(child node) - 该方法以对象为参数。把这个对象作为最后的子节点加在XML文档上

8、。createNode() 或者 createElement()方法可以创建节点或元素。但是它们不会把新建的节点加到文档树形结构上。而是需要用appendChild()方法,insertBefore()方法,或者replaceChild()方法把新建的节点加上去。例: doc.appendChild(root) - PS: root是一个用createNode()或createElement()方法创建的节点k)save(destination) - 该方法以对象为参数。这个对象可以是一个DOMDocument对象也可以是一个文件名。save()方法把DOMDocument对象保存在指定的目的

9、地。例: doc.save("* DOMDocument对象常用属性:a)async - 该属性用来指定是否允许异步加载。属性async取布尔值。例: doc.async = false -同步b)childNodes - 该属性返回属于一个父节点的子节点集合(即返回当前元素所有子元素的数组对象)。该属性的值是对象IXMLDOMNodeList的类型。例: var firstelem = doc.childNodes.item(0)c)documentElement - 该属性包含用对象DOMDocument表示的XML文档的根元素。例: var root = doc.documen

10、tElementd)firstChild - 该属性返回父元素的第一个子节点。该元素是只读的。例: var firstelem = doc.firstChilde)lastChild - 该属性返回父元素的最后一个子节点。例: var lastelem = doc.lastChildf)parseError - 该属性返回一个包含大部分最近产生的错误信息的对象。例: var error = doc.parseErrorg)readyState - 该属性返回XML文档的状态。它显示这个文档是否已完全载入。4个状态:0-未初始化、1-正在加载、2-已加载、3-交互中、4-已完成例: var st

11、ateInfo = 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(newNod

12、e, refNode) - 该方法把一个新节点newNode插到一个已存在节点refNode之前。c)removeChild(nodeName) - 该方法删除指定的节点。d)replaceChild(newNode, oldNode) - 该方法用新节点newNode替换旧节点oldNode。e)hasChildNodes() - 如果IXMLDOMNode对象有子节点,该方法返回值为真(true)。f)cloneNode(Boolean) - 如果参数Boolean为真,该方法返回IXMLDOMNode对象一个完全克隆。该克隆节点包含和原节点一样的子节点。* IXMLDOMNode对象常用

13、属性: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)nextN

14、ode() - 该方法返回节点集的下一个节点。* IXMLDOMNodeList对象常用属性:length - 获得节点集中节点的个数。* IXMLDOMParseError对象常用属性:a)errorCode - 该属性包含类型为长整型的错误代码。如果XML文档没有错误,该属性返回0。b)reason - 该属性包含解释错误原因的字符串。c)line - 该属性存储代表错误行数的长整型。d)linePos - 该属性存储代表错误行位置的长整型。e)srcText - 该属性包含引起错误的那一行字符串。 与使用 removeChild() 不同的是,应用程序简单地使用了replaceChild

15、()。注意在此例中,该方法还会返回旧的节点,以便能根据需要将它移往别处,或许是移到一个新 Document,该 Document 列出所有订单不足的商品。注意由于没有内容被添加到该元素,因此它是一个空元素。空元素没有内容,并且可以用一种特殊的简写来表示:<backordered /> 斜线(/)消除了对结束标签(</backordered>)的需要。. if (thisOrderItem.getAttributeNode("instock") .getNodeValue().equals("N") Element backElem

16、ent = doc.createElement("backordered"); Node deadNode = thisOrderItem.getParentNode() .replaceChild(backElement, thisOrderItem); 创建和设置属性没有标志表明一个 backordered 元素是什么商品,那该怎么正确处理它呢?纠正信息缺乏的方法之一是向元素添加属性。应用程序首先创建一个 itemid 属性。接下来,它根据原先的 item 元素确定 itemid 的值,然后再自己设置该属性的值。最后,它把该元素添加到文档,就像以前一样。.if (thi

17、sOrderItem.getAttributeNode("instock") .getNodeValue().equals("N") Element backElement = doc.createElement("backordered"); backElement.setAttributeNode(doc.createAttribute("itemid"); String itemIdString = thisOrderItem.getAttributeNode("itemid").getN

18、odeValue(); backElement.setAttribute("itemid", itemIdString); Node deadNode = thisOrderItem.getParentNode().replaceChild(backElement, thisOrderItem); else .如果具有该名称的节点不存在, setAttribute() 就会创建一个属性节点。删除属性 应用程序还可以删除属性。例如,在输出中显示客户信用限额信息也许是不可取的,因此应用程序可以临时地将该属性从文档中删除。删除信息是相当简单的,只需使用 removeAttribute() 来删除数据。.Element thisOrder = (Element)orders.item(orderNum); Element customer = (Element)this

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论