建立和操作 JDOM 文档
生活随笔
收集整理的這篇文章主要介紹了
建立和操作 JDOM 文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JDOM 使用標準的 Java 編碼模式。只要有可能,它使用 Java new 操作符而不用復雜的工廠化模式,使對象操作即便對于初學用戶也很方便。例如,讓我們看一下如何隨便使用 JDOM 建立一個簡單的 XML 文檔。我們將要建立的結構如清單 1 所示。(從 參考資料上可下載關于本文的完整代碼)
清單 1. 建立 XML 文檔樣本
<?xml version="1.0" encoding="UTF-8"?>
<car vin="123fhg5869705iop90">
<!--Description of a car-->
<make>Toyota</make>
<model>Celica</model>
<year>1997</year>
<color>green</color>
<license state="CA">1ABC234</license>
</car>
注意:我們將建立 示例文檔,在下面的清單 2 到清單 7 中有詳細描述。
開始,讓我們先創建一個根元素,并將其添加到文檔中:
清單 2. 創建一個 Document
Element carElement = new Element("car");
Document myDocument = new Document(carElement);
這一步創建一個新 org.jdom.Element ,并將其作為 org.jdom.Document myDocument 的根元素。(如果您使用 參考資料中提供的樣本代碼,請務必導入 org.jdom.* 。)因為一個 XML 文檔必須一直有一個唯一的根元素,所以 Document 將 Element 放在它的構造器中。
下一步,添加 vin 屬性:
清單 3. 添加一個 Attribute
carElement.addAttribute(new Attribute("vin", "123fhg5869705iop90"));
添加元素也是很簡單的。這里我們添加 make 元素:
清單 4. 元素和子元素
Element make = new Element("make");
make.addContent("Toyota");
carElement.addContent(make);
由于 Element 的 addContent 方法返回 Element ,我們也可以這樣寫:
清單 5. 用簡潔形式添加元素
carElement.addContent(new Element("make").addContent("Toyota"));
這兩個語句完成了相同的工作。有些人認為第一個示例可讀性更好,但是如果您一次建立許多元素,您會覺得第二個示例可讀性更好。要完成構建文檔:
清單 6. 添加其余的元素
carElement.addContent(new Element("model").addContent("Celica"));
carElement.addContent(new Element("year").addContent("1997"));
carElement.addContent(new Element("color").addContent("green"));
carElement.addContent(new Element("license")
.addContent("1ABC234").addAttribute("state", "CA"));
您會注意到對于 license 元素,我們不但添加了元素的內容,還為其添加了一個屬性,表明許可已被發出了這個狀態。這是因為 Element 的 addContent 方法總是返回 Element 本身,而不是一個無效的聲明。
用同樣的方法添加注釋部分或其它標準 XML 類型:
清單 7. 添加一條注釋
carElement.addContent(new Comment("Description of a car"));
操作文檔也是用類似方式。例如,要引用 year 元素,我們使用 Element 的 getChild 方法:
清單 8. 訪問子元素
Element yearElement = carElement.getChild("year");
該語句實際上將返回第一個元素名為 year 的子 Element 。 如果沒有 year 元素,則調用返回一個空值。注意,我們不必回溯來自任何類似于 DOM Node 接口的返回值 -- Element 的子元素就是 Element 。用類似的方式,我們可把 year 元素從文檔中除去:
清單 9. 除去子元素
boolean removed = carElement.removeChild("year");
這次調用將只除去 year 元素;文檔的其余部分保持不變。
到目前為止,我們已經涵蓋了文檔的生成和操作。要將完成的文檔輸出至控制臺,可使用 JDOM 的 XMLOutputter 類:
清單 10. 將 JDOM 轉化為 XML 文本
try {
XMLOutputter outputter = new XMLOutputter(" ", true);
outputter.output(myDocument, System.out);
} catch (java.io.IOException e) {
e.printStackTrace();
}
XMLOutputter 有幾個格式選項。這里我們已指定希望子元素從父元素縮進兩個空格,并且希望元素間有空行。 XMLOutputter 可輸出到 Writer 或 OutputStream 。為輸出到文件,我們可以簡單地將輸出行簡化為:
清單 11. 使用 FileWriter 輸出 XML
FileWriter writer = new FileWriter("/some/directory/myFile.xml");
outputter.output(myDocument, writer);
writer.close();
清單 1. 建立 XML 文檔樣本
<?xml version="1.0" encoding="UTF-8"?>
<car vin="123fhg5869705iop90">
<!--Description of a car-->
<make>Toyota</make>
<model>Celica</model>
<year>1997</year>
<color>green</color>
<license state="CA">1ABC234</license>
</car>
注意:我們將建立 示例文檔,在下面的清單 2 到清單 7 中有詳細描述。
開始,讓我們先創建一個根元素,并將其添加到文檔中:
清單 2. 創建一個 Document
Element carElement = new Element("car");
Document myDocument = new Document(carElement);
這一步創建一個新 org.jdom.Element ,并將其作為 org.jdom.Document myDocument 的根元素。(如果您使用 參考資料中提供的樣本代碼,請務必導入 org.jdom.* 。)因為一個 XML 文檔必須一直有一個唯一的根元素,所以 Document 將 Element 放在它的構造器中。
下一步,添加 vin 屬性:
清單 3. 添加一個 Attribute
carElement.addAttribute(new Attribute("vin", "123fhg5869705iop90"));
添加元素也是很簡單的。這里我們添加 make 元素:
清單 4. 元素和子元素
Element make = new Element("make");
make.addContent("Toyota");
carElement.addContent(make);
由于 Element 的 addContent 方法返回 Element ,我們也可以這樣寫:
清單 5. 用簡潔形式添加元素
carElement.addContent(new Element("make").addContent("Toyota"));
這兩個語句完成了相同的工作。有些人認為第一個示例可讀性更好,但是如果您一次建立許多元素,您會覺得第二個示例可讀性更好。要完成構建文檔:
清單 6. 添加其余的元素
carElement.addContent(new Element("model").addContent("Celica"));
carElement.addContent(new Element("year").addContent("1997"));
carElement.addContent(new Element("color").addContent("green"));
carElement.addContent(new Element("license")
.addContent("1ABC234").addAttribute("state", "CA"));
您會注意到對于 license 元素,我們不但添加了元素的內容,還為其添加了一個屬性,表明許可已被發出了這個狀態。這是因為 Element 的 addContent 方法總是返回 Element 本身,而不是一個無效的聲明。
用同樣的方法添加注釋部分或其它標準 XML 類型:
清單 7. 添加一條注釋
carElement.addContent(new Comment("Description of a car"));
操作文檔也是用類似方式。例如,要引用 year 元素,我們使用 Element 的 getChild 方法:
清單 8. 訪問子元素
Element yearElement = carElement.getChild("year");
該語句實際上將返回第一個元素名為 year 的子 Element 。 如果沒有 year 元素,則調用返回一個空值。注意,我們不必回溯來自任何類似于 DOM Node 接口的返回值 -- Element 的子元素就是 Element 。用類似的方式,我們可把 year 元素從文檔中除去:
清單 9. 除去子元素
boolean removed = carElement.removeChild("year");
這次調用將只除去 year 元素;文檔的其余部分保持不變。
到目前為止,我們已經涵蓋了文檔的生成和操作。要將完成的文檔輸出至控制臺,可使用 JDOM 的 XMLOutputter 類:
清單 10. 將 JDOM 轉化為 XML 文本
try {
XMLOutputter outputter = new XMLOutputter(" ", true);
outputter.output(myDocument, System.out);
} catch (java.io.IOException e) {
e.printStackTrace();
}
XMLOutputter 有幾個格式選項。這里我們已指定希望子元素從父元素縮進兩個空格,并且希望元素間有空行。 XMLOutputter 可輸出到 Writer 或 OutputStream 。為輸出到文件,我們可以簡單地將輸出行簡化為:
清單 11. 使用 FileWriter 輸出 XML
FileWriter writer = new FileWriter("/some/directory/myFile.xml");
outputter.output(myDocument, writer);
writer.close();
總結
以上是生活随笔為你收集整理的建立和操作 JDOM 文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache Commons Confi
- 下一篇: 转载的SSO文章,很基础