Jdom妯″瀷錛?br />
姣忎釜鍏冪礌閮芥湁鍥涗釜鍏抽敭孌碉細(xì)
1銆佸悕縐?br /> 2銆佸厓绱犲睘鎬?br /> 3銆佸厓绱犺寖鍥村悕瀛楃┖闂?br /> 4銆佸厓绱犲唴瀹?/p>
鐢↗DOM澶勭悊鐜版湁XML鏂囨。鐨勫ぇ鑷磋繃紼嬪涓嬶細(xì)
1銆?鐢ㄧ畝鍗曟棤鍙樺厓鏋勯犲嚱鏁版瀯閫犱竴涓猳rg.jdom.input.SAXBuilder瀵硅薄銆係AXBuilder鐢╯ax瑙f瀽鍣ㄤ粠鏂囦歡涓瀯閫犳枃妗c?SAXBuilder渚﹀惉sax浜嬩歡騫朵粠鍐呭瓨涓緩绔嬩竴涓浉搴旂殑鏂囨。銆傝繖縐嶆柟寮忛潪甯稿揩錛堝熀鏈笂鍜宻ax涓鏍峰揩錛夛紝Jdom鐨勯熷害鏈夊煎緱鏈熷緟鐨勬彁楂樼殑娼滃姏閫氳繃 涓涓歡鏈熺殑鏋勯犲櫒鐨勫畬鎴愩傝繖涓瀯閫犲櫒媯(gè)鏌ML鏁版嵁婧愶紝浣嗗綋璇鋒眰鐨勬椂鍊欐墠瀵瑰畠瑙f瀽銆備緥濡傦細(xì)鏂囨。鐨勫睘鎬у綋涓嶈闂椂鏄笉闇瑕佽В鏋愮殑.鏋勯犲櫒浠嶅湪鍙戝睍錛屽彲浠ラ?sql鏌ヨ銆乴dap鏌ヨ鍜屽叾浠栫殑鏁版嵁鏍煎紡鏉ュ閫燡dom鏂囨。銆傛墍浠ワ紝涓鏃﹁繘鍒板唴瀛樹腑錛屾枃妗e氨鍜屽緩閫犲畠鐨勫伐鍏鋒病鏈夊叧緋諱簡(jiǎn)銆?br />
2銆佺敤寤虹珛鍣ㄧ殑build()鏂規(guī)硶浠嶳eader,InputStream,URL,File鎴栧寘鍚郴緇烮D鐨勫瓧絎︿覆寤虹珛Document瀵硅薄銆?br />
3銆佸鏋滆鍙栨枃妗i亣鍒伴棶棰橈紝鍒欐姏鍑篒OException,濡傛灉寤虹珛鏂囨。閬囧埌闂錛屽垯鎶涘嚭JDOMException銆?br />
4銆佸惁鍒欑敤Document綾伙紝Element綾誨拰鍏朵粬JDOM綾葷殑鏂規(guī)硶鍦ㄦ枃妗d腑寤虹珛瀵艱埅銆?/p>
瀵艱埅JDOM鏍?br />
姣忎釜Element瀵硅薄鍖呭惈涓鍒楀瓙鍏冪礌錛欳omment,ProcessingInstruction,Text鍜屽叾浠朎lement瀵硅薄銆傛澶栵紝灞炴у拰鍏朵粬鍚嶅瓧絀洪棿榪樻湁鍗曠嫭鐨勫垪琛ㄣ?br />
鍒?鏋愭枃妗e拰寤虹珛Document瀵硅薄涔嬪悗錛屽彲鑳借閫氳繃鎼滅儲(chǔ)鏉ラ夋嫨鍏朵腑紼嬪簭鎰熷叴瓚g殑閮ㄥ垎銆傚湪JDOM涓紝澶у鏁板鑸氳繃Element綾葷殑鏂規(guī)硶榪涜銆傛瘡涓?Element鐨勫畬鏁村瓙鍏冪礌(鍖呮嫭浜?jiǎn)瀛愬厓绱犵殑鎵鏈夊唴瀹癸紝鍖呮嫭璇存槑銆佸鐞嗘寚浠ゃ佹枃鏈妭鐐瑰拰鍏冪礌錛岃榪涜娣卞害鎼滅儲(chǔ)錛屽氨瑕佸褰撳墠鍏冪礌鐨勫瓙鍏冪礌搴旂敤 getContent()鏂規(guī)硶錛岄氬父瑕侀噰鐢ㄩ掑綊)鍦╣etContent()鏂規(guī)硶榪斿洖java.util.List涓彁渚涖俫etChildren()鏂?娉曡繑鍥炵殑java.util.List涓彧鏈夋瘡涓狤lement鐨勫瓙鍏冪礌銆?br />
JDOM鐨勫鐞嗘柟寮忔湁浜涚被浼間簬DOM錛屼絾瀹冧富瑕佹槸鐢⊿AX瀹炵幇鐨勶紝浣犱笉蹇呮媴蹇?jī)澶勭悊閫熷害鍜屽唴瀛樼殑闂銆傚彟澶栵紝JDOM涓嚑涔庢病鏈夋帴鍙o紝鐨勭被鍏ㄩ儴鏄疄瀹炲湪鍦ㄧ殑綾伙紝娌℃湁綾誨伐鍘傜被鐨勩傚叾鏈閲嶈鐨勪竴涓寘org.jdom涓富瑕佹湁浠ヤ笅綾伙細(xì)
Document(鏂囨。鑺傜偣)
姣忎釜Document瀵硅薄鍖呮嫭涓嬪垪涓変釜灞炴э細(xì)
1銆佹牴Element
2銆佽〃紺烘枃妗g被鍨嬪0鏄庣殑DocType瀵硅薄
3銆佸寘鍚牴鍏冪礌鍜屼換浣曞鐞嗘寚浠や笌璇存槑鐨凩ist,鎸夋枃妗i『搴忓嚭鐜?br />
Attribute(灞炴ц妭鐐?
Public Element setAttributes (List attributes)Throws IllegalAddException
Public List getAttributes()
setAttribute()
getAttribute()
getAttributeValue()
attribute.getName()
attribute.getValue()
CDATA (CDATA孌佃妭鐐?
Comment(璇存槑鑺傜偣)
XML鏂囦歡鐨勮鏄庯細(xì)<!-- wire configuration -->
DocType (鏂囨。綾誨瀷鑺傜偣)
Element(鍏冪礌鑺傜偣)
鍏冪礌鍚嶈緗拰鑾峰彇
Public Element setName(String name) throws IllegalNameException
Public String getName()
Public String get(int i) //i>=0
Content(鍐呭鑺傜偣)
Public Element setContent(List list) throws IllegalAddException;
public List getContent();
addContent();
removeContent();
EntityRef(瀹炰緥鑺傜偣)
Namespace(鍚嶅瓧絀洪棿鑺傜偣)
ProcessingInstruction(澶勭悊鎸囦護(hù)鑺傜偣)
Text(鏂囨湰鑺傜偣)
getText();
setText(String s);
example.xml鏂囦歡
<?xml version="1.0" encoding="GBK"?>
<bookList>
<book>
<name>Java緙栫▼鍏ラ棬</name>
<author>寮犱笁</author>
<publishDate>2002-6-6</publishDate>
<price>35.0</price>
</book>
<book>
<name>XML鍦↗ava涓殑搴旂敤</name>
<author>鏉庡洓</author>
<publishDate>2002-9-16</publishDate>
<price>92.0</price>
</book>
</bookList>
cute.xml鏂囦歡
<?xml version="1.0" encoding="gb2312"?>
<bookList> //RootElement
<book hot="true"> //<childelement name="value">---->Attribute
<name>Java緙栫▼鍏ラ棬</name> //<element>This is my text content</element>
<author>cute</author>
<publishDate>2002-6-6</publishDate>
<price>50.0</price>
</book>
<book>
<name>XML鍦↗ava涓殑搴旂敤</name>
<author>鏉庡洓</author>
<publishDate>2002-9-16</publishDate>
<price>92.0</price>
</book>
</bookList>
鏁版嵁杈撳叆瑕佺敤鍒癤ML鏂囨。瑕侀氳繃org.jdom.input鍖咃紝鍙嶈繃鏉ラ渶瑕乷rg.jdom.output銆傚鍓嶉潰鎵璇達(dá)紝鍏蟲槸鐪婣PI鏂囨。灝辮兘澶熶嬌鐢ㄣ?
鎴戜滑鐨勪緥瀛愯鍏ML鏂囦歡example.xml錛屽姞鍏ヤ竴鏉″鐞嗘寚浠わ紝淇敼絎竴鏈功鐨勪環(huán)鏍煎拰浣滆咃紝騫舵坊鍔犱竴鏉″睘鎬э紝鐒跺悗鍐欏叆鏂囦歡cute.xml
cute.java錛?/p>
package jdom;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import java.io.*;
import java.util.*;
public class Cute {
public static void main(String args[]) {
try {
/*
* 鐢ㄦ棤鍙樺厓鏋勯犲嚱鏁版瀯閫犱竴涓猄AXBuilder瀵硅薄, 鐢╯ax瑙f瀽鍣ㄤ粠鏂囦歡涓瀯閫犳枃妗?
* SAXBuilder渚﹀惉sax浜嬩歡騫朵粠鍐呭瓨涓緩绔嬩竴涓浉搴旂殑鏂囨。
*/
SAXBuilder sb = new SAXBuilder();
// 鍒涘緩鏂囨。
Document doc = sb.build(new FileInputStream("example.xml"));
// 鍔犲叆涓鏉″鐞嗘寚浠?br />
ProcessingInstruction pi = new ProcessingInstruction(
"xml-stylesheet",
"href=\"bookList.html.xsl\" type=\"text/xsl\"");
// 鎶婅繖鏉″鐞嗘寚浠わ紝鍔犲叆鏂囨。涓?br />
doc.addContent(pi);
// 鑾峰緱榪欎釜鏂囨。鐨勬牴鍏冪礌
Element root = doc.getRootElement();
java.util.List ls = root.getChildren();
// 鑾峰緱榪欎釜鏍瑰厓绱犵殑鎵鏈夊瓙鍏冪礌(涓嶅寘鍚瓙鍏冪礌鐨勫瓙鍏冪礌)錛屽嵈瀹屽叏蹇界暐鍏跺唴瀹?nbsp;
Iterator i = ls.iterator();
while (i.hasNext()) {
Object o = i.next();
if (o instanceof Text)/*浣跨敤instanceof 鏉ヨ幏寰楁墍闇瑕佺殑鍐呭*/
{Text t=(Text)o;
System.out.println("Text: " + t.getText());}
else if(o instanceof Attribute)
System.out.println("Attribute: " + o);
else if (o instanceof Element)
System.out.println("Element: " + ((Element) o).getName());
}
// 寰楀埌絎竴涓瓙鍏冪礌鐨勫瓙鍏冪礌錛屽嵈瀹屽叏蹇界暐鍏跺唴瀹?br />
Element book = (Element) ls.get(0);
// 緇欒繖涓瓙鍏冪礌娣誨姞涓鏉″睘鎬э紝
Attribute attr = new Attribute("hot", "true");
book.setAttribute(attr);
// 鑾峰緱榪欎釜鍏冪礌鐨勫瓙鍏冪礌錛堟寚瀹氾級(jí)浠ュ強(qiáng)鍏跺?br />
Element el2 = book.getChild("author");
// 杈撳嚭榪欎釜鍏冪礌鐨勫?br />
System.out.println(el2.getName());
// 緇欒繖涓厓绱犵殑鍊兼敼涓悕瀛?br />
el2.setText("cute");
// 鍐嶈幏寰楄繖涓厓绱犵殑瀛愬厓绱狅紙鎸囧畾錛?br />
Element el3 = book.getChild("price");
// 緇欒繖涓兼崲涓?br />
el3.setText(Float.toString(50.0f));
String indent = " ";
boolean newLines = true;
XMLOutputter xml = new XMLOutputter(indent, newLines, "gb2312");
xml.output(doc, new FileOutputStream("e:\\cute.xml"));
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}