Set rootNode = doc.documentElement |
此时,显然rootNode指向booklist根元素。
一旦建立了对DOM树中某个节点(例如根节点)的引用后,就可以根据节点间的依属关系调用适当的方法或属性进行遍历。在上例中,我们可以简单地取得rootNode的第二个子节点,即第二个book元素(自然辩证法概论)的引用:
Set bookNode = rootNode.childNodes(1) |
这里,childNodes是Node对象的一个属性数组(下标从0开始)。下面给出由当前节点访问其它相关节点的方法(设当前节点为bookNode)。
属性 | 功能描述 | 示例中的结果 |
bookNode.ownerDocument | 返回Document节点 | Booklist.XML文档自身 |
bookNode.previousSibling | 返回当前节点的前一个兄弟节点 | 第一个<book>元素节点,即<面向对象软件构造> |
bookNode. nextSibling | 返回当前节点的下一个兄弟节点 | 第三个<book>元素节点,即<软件工程> |
bookNode.parentNode | 返回当前节点的父节点 | 根元素节点,<booklist> |
bookNode.firstChild bookNode.lastChild | 返回当前节点的第一个(最后一个)子节点 | 第一个子节点:<title> 最后一个子节点:<author> |
bookNode. ChildNodes | 返回当前节点的所有子节点集合 | 包含<title>,<isbn>,等五个子节点的子节点集 |
[3.6]. DOM节点的部分属性列表
获得节点的引用后,就可以读取节点的相关信息:
1). 节点类型:bookNode.nodeType,本例为1。Document对象类型为9,元素类型为1,属性类型为2;
2). 节点名称:bookNode.nodeName,本例为book;
3). 节点值: bookNode.nodeValue,本例为null。对于Attr节点,返回的是属性值,而对于Element节点,返回的是null。
此外,DOM对象还提供大量方法支持对XML树的查找和修改,比如:
1). Document 对象有createElement(创建元素)、createTextNode(创建文本节点)、getElementsByTagName(找出与标签匹配的元素集)等方法。如,上例中,如果调用doc.getElementsByTagName(“book”)将返回全部三个<book>元素节点。
2). Element 对象有getAttribute(取得属性)、setAttribute(设置属性)、removeAttribute(删除属性)、removeChild(删除子节点)、replaceChild(替换子节点)等方法。
3). Node 对象有selectNodes方法,可以支持条件查询。如本例中,rootNode.selectNodes("//book[price < 60]")将返回所有书价小于60的<book>节点。