使用Xerces-J的DOM方式进行XML程序设计
--Document
Document界面是DOM中另外一个重要的界面,Document界面用来表示一个完整的XML或者HTML文档,Document界面的实例是一个文档对象树的根,同时提供一系列的动态生成DOM元素的方法。Document继承Node的所有方法,其特有的方法如表5。
方法 | 使用说明 |
Attr createAttribute(java.lang.String name) | 用指定的名字动态创建一个Attr。 |
Attr createAttributeNS(java.lang.String namespaceURI,java.lang.String qualifiedName) | 用指定的名空间和名字动态创建一个Attr。第一个参数为名空间的URI,第二个参数为Attr的名字。 |
CDATASection createCDATASection(java.lang.String data) | 动态创建一个CDATASection,参数为CDATASection的数据。 |
Comment createComment(java.lang.String data) | 动态创建一个Comment(注释),参数为注释的内容。 |
DocumentFragment createDocumentFragment() | 动态创建一个空的DocumentFragment。 |
Element createElement(java.lang.String tagName) | 动态创建一个Element,这个方法是我们在动态修改DOM树内容,即动态创建XML的时候最常用的方法之一,参数为Element的tag。这个方法一般会和createAttribute和createTextNode方法合用。 |
Element createElementNS(java.lang.String namespaceURI,java.lang.String qualifiedName) | 动态创建一个支持名空间的Element,第一个参数为名空间的URI第二个参数为Element的tag名。 |
EntityReference createEntityReference(java.lang.String name) | 动态创建一个EntityReference元素,如果这个EntityReference已知,则创建其子节点。 |
ProcessingInstruction createProcessingInstruction(java.lang.String target, java.lang.String data) | 动态创建一个ProcessingInstruction,例如 <?xml-stylesheet type="text/xml" href="14-2.xsl"?>其中xml-stylesheet为第一个参数即target的内容,type="text/xml" href="14-2.xsl"为第二个参数即data中的内容。 |
Text createTextNode(java.lang.String data) | 动态创建一个Text节点,这可是一个重要的方法,一个XML文件中的“实质内容” 可都是用这个方法创建的,因此一定要牢牢记住。参数为节点的内容。 |
DocumentType getDoctype() | 这个方法返回DocumentType(文件类型定义)。 |
Element getDocumentElement() | 返回文档的根元素。同整个文档不同,这个Element不会包含DocumentType。一定要注意,是根元素Element不是根节点Node。如果解析的是一个HTML文件,那么他的根元素是<html>这个标签。 |
Element getElementById(java.lang.String elementId) | 根据元素的ID返回一个Element。这是最有用的方法之一,可以迅速地找到一个元素。元素的ID是由在DTD中声明的ATTLIST决定的,如以下代码<!ATTLIST test1 id ID #REQUIRED>声明了test1这个Element有一个标记为id的属性作为ID。参数是ID。如果在XML文档中有不只一个采用这个ID的元素,那么解析器的行为不可预测。 |
NodeList getElementsByTagName(java.lang.String tagname) | 通过tag取得所有使用这个tag的元素的引用。这也是最有用的方法之一,可以迅速地找到一系列使用同一个tag的元素。参数是tag的名字,返回值在一个NodeList里面返回。 |
NodeList getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName) | 同上,但是使用名空间访问。 |
DOMImplementation getImplementation() | 返回正在使用的DOMImplementation对象。 |
Node importNode( Node importedNode, boolean deep) | 从其他文档对象引入一个节点。第一个参数是节点的引用,第二个参数决定是否引入子节点。原节点不会被改变或者被删除。在引入的同时不会改变名空间信息。但是Element的缺省属性不会被拷贝。 |