- 相關(guān)推薦
XML認(rèn)證知識(shí)點(diǎn):DOM Parser
DOM Document 是以層次結(jié)構(gòu)組織起來(lái)的節(jié)點(diǎn),或信息片段的集合。這種層次結(jié)構(gòu)允許開(kāi)發(fā)者瀏覽樹(shù)來(lái)查找特定信息。通常,分析結(jié)構(gòu)需要在完成任何工作之前裝入整個(gè)文檔并且裝入層次結(jié)構(gòu)。
基本的應(yīng)用程序
從創(chuàng)建基本的應(yīng)用程序,名為 OrderProcessor 的類(lèi)開(kāi)始。
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import org.w3c.dom.Document;
public class OrderProcessor {
public static void main (String args[]) {
File docFile = new File("orders.xml");
Document doc = null;
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(docFile);
} catch (Exception e) {
System.out.print("Problem parsing the file.");
}
}
}
首先,Java 導(dǎo)入必要的類(lèi),然后創(chuàng)建 OrderProcessor 應(yīng)用程序。在本教程中的這個(gè)示例將只處理一個(gè)文件,所以為簡(jiǎn)短起見(jiàn),該應(yīng)用程序包含對(duì)它的直接引用。
應(yīng)用程序在 try-catch 塊外部定義了 Document 對(duì)象,以便在后面使用該對(duì)象。try-catch 使您能執(zhí)行可能會(huì)拋出異常的一些操作,這樣不會(huì)危及整個(gè)應(yīng)用程序。如果異常拋出,則應(yīng)用程序簡(jiǎn)單地執(zhí)行相應(yīng)的 catch 代碼。
在 try-catch 塊內(nèi)部,應(yīng)用程序創(chuàng)建 DocumentBuilderFactory,然后使用它來(lái)創(chuàng)建 DocumentBuilder。最后,DocumentBuilder 解析該文件以創(chuàng)建 Document。
編輯文檔
更改節(jié)點(diǎn)數(shù)據(jù)
Node.setNodeValue(elemValue);
添加節(jié)點(diǎn)
String totalString = new Double(total).toString();
Node totalNode = doc.createTextNode(totalString);
//Document 對(duì)象創(chuàng)建新的文本節(jié)點(diǎn),該節(jié)點(diǎn)帶有作為值的 totalString
Element totalElement = doc.createElement("total");
//創(chuàng)建新元素 total
totalElement.appendChild(totalNode);
// 將節(jié)點(diǎn)添加到新的 total 元素。
thisOrder.insertBefore(totalElement, thisOrder.getFirstChild());
//將新元素添加到 Document,指定新的 Node,然后指定新 Node 在 Node 之前
除去節(jié)點(diǎn)
Node deadNode = thisOrderItem.getParentNode().removeChild(thisOrderItem);
替換節(jié)點(diǎn)
Element backElement = doc.createElement("backordered");
//創(chuàng)建新元素 backordered
Node deadNode = thisOrderItem.getParentNode().replaceChild(backElement,thisOrderItem);
創(chuàng)建和設(shè)置屬性
Element backElement = doc.createElement("backordered");
//創(chuàng)建新元素 backordered
backElement.setAttributeNode(doc.createAttribute("itemid"));
//創(chuàng)建新屬性 itemid
String itemIdString = thisOrderItem.getAttributeNode("itemid").getNodeValue();
//取得thisOrderItem的屬性itemid的值
backElement.setAttribute("itemid", itemIdString);
//設(shè)置backElement的屬性item的值,可以省略createAttribute
Node deadNode = thisOrderItem.getParentNode().replaceChild(backElement,thisOrderItem);
除去屬性
Element thisOrder = (Element)orders.item(orderNum);
Element customer = (Element)thisOrder.getElementsByTagName("cusomertid").item(0);
customer.removeAttribute("limit");
//去除屬性limit
【XML認(rèn)證知識(shí)點(diǎn):DOM Parser】相關(guān)文章:
XML認(rèn)證考試知識(shí)點(diǎn):Parser08-21
IBM XML認(rèn)證知識(shí)點(diǎn):Dtd09-01
關(guān)于IBM XML認(rèn)證考試的要點(diǎn)09-07
ibm認(rèn)證考試知識(shí)點(diǎn)08-05
Linux認(rèn)證考試必考知識(shí)點(diǎn)09-02
華為認(rèn)證:HCSE路由知識(shí)點(diǎn)羅列08-03
關(guān)于HTML DOM的簡(jiǎn)介10-16
關(guān)于XML的介紹08-29
Xml的英語(yǔ)解釋11-01