DOM Document 是以层次结构组织起来的节点,或信息片段的集合。这种层次结构允许开发者浏览树来查找特定信息。通常,分析结构需要在完成任何工作之前装入整个文档并且装入层次结构。
基本的应用程序
从创建基本的应用程序,名为 OrderProcessor 的类开始。
import mentBuilder;
import mentBuilderFactory;
import ;
import ment;
public class OrderProcessor {
public static void main (String args[]) {
File docFile = new File("");
Document doc = null;
try {
DocumentBuilderFactory dbf = nstance();
DocumentBuilder db = ocumentBuilder();
doc = e(docFile);
} catch (Exception e) {
t("Problem parsing the file.");
}
}
}
首先,Java 导入必要的类,然后创建 OrderProcessor 应用程序。在本教程中的这个示例将只处理一个文件,所以为简短起见,该应用程序包含对它的直接引用。
应用程序在 try-catch 块外部定义了 Document 对象,以便在后面使用该对象。try-catch 使您能执行可能会抛出异常的一些操作,这样不会危及整个应用程序。如果异常抛出,则应用程序简单地执行相应的. catch 代码。
在 try-catch 块内部,应用程序创建 DocumentBuilderFactory,然后使用它来创建 DocumentBuilder。最后,DocumentBuilder 解析该文件以创建 Document。
编辑文档
更改节点数据
odeValue(elemValue);
添加节点
String totalString = new Double(total)ring();
Node totalNode = teTextNode(totalString);
//Document 对象创建新的文本节点,该节点带有作为值的 totalString
Element totalElement = teElement("total");
//创建新元素 total
ndChild(totalNode);
// 将节点添加到新的 total 元素。
rtBefore(totalElement, irstChild());
//将新元素添加到 Document,指定新的 Node,然后指定新 Node 在 Node 之前
除去节点
Node deadNode = arentNode()veChild(thisOrderItem);
替换节点
Element backElement = teElement("backordered");
//创建新元素 backordered
Node deadNode = arentNode()aceChild(backElement,thisOrderItem);
创建和设置属性
Element backElement = teElement("backordered");
//创建新元素 backordered
ttributeNode(teAttribute("itemid"));
//创建新属性 itemid
String itemIdString = ttributeNode("itemid")odeValue();
//取得thisOrderItem的属性itemid的值
ttribute("itemid", itemIdString);
//设置backElement的属性item的值,可以省略createAttribute
Node deadNode = arentNode()aceChild(backElement,thisOrderItem);
除去属性
Element thisOrder = (Element)(orderNum);
Element customer = (Element)lementsByTagName("cusomertid")(0);
veAttribute("limit");
//去除属性limit