锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产在线资源,亚洲国产精品久久久久久女王,亚洲女人天堂成人av在线http://www.aygfsteel.com/java-tju/zh-cnWed, 18 Jun 2025 06:03:13 GMTWed, 18 Jun 2025 06:03:13 GMT60jdom浣跨敤鎸囧崡http://www.aygfsteel.com/java-tju/archive/2007/06/05/122230.htmljava_tjujava_tjuTue, 05 Jun 2007 12:03:00 GMThttp://www.aygfsteel.com/java-tju/archive/2007/06/05/122230.htmlhttp://www.aygfsteel.com/java-tju/comments/122230.htmlhttp://www.aygfsteel.com/java-tju/archive/2007/06/05/122230.html#Feedback1http://www.aygfsteel.com/java-tju/comments/commentRss/122230.htmlhttp://www.aygfsteel.com/java-tju/services/trackbacks/122230.html
浜屻丣DOM 鍖呮瑙?br>JDOM鏄敱浠ヤ笅鍑犱釜鍖呯粍鎴愮殑
org.JDOM
org.JDOM.input
org.JDOM.output
org.JDOM.adapters
org.JDOM.transform

涓夈丣DOM 綾昏鏄?/p>

org.JDOM
榪欎釜鍖呴噷鐨勭被鏄綘瑙f瀽xml鏂囦歡鍚庢墍瑕佺敤鍒扮殑鎵鏈夋暟鎹被鍨嬨?br>Attribute
CDATA
Coment
DocType
Document
Element
EntityRef
Namespace
ProscessingInstruction
Text

org.JDOM.transform
鍦ㄦ秹鍙妜slt鏍煎紡杞崲鏃跺簲浣跨敤涓嬮潰鐨?涓被
JDOMSource
JDOMResult

org.JDOM.input
杈撳叆綾伙紝涓鑸敤浜庢枃妗g殑鍒涘緩宸ヤ綔
SAXBuilder
DOMBuilder
ResultSetBuilder

org.JDOM.output
杈撳嚭綾伙紝鐢ㄤ簬鏂囨。杞崲杈撳嚭
XMLOutputter
SAXOutputter
DomOutputter
JTreeOutputter

浣跨敤鍓嶆敞鎰忎簨欏癸細
1.JDOM瀵逛簬JAXP 浠ュ強 TRax 鐨勬敮鎸?br>JDOM 鏀寔JAXP1.1錛氫綘鍙互鍦ㄧ▼搴忎腑浣跨敤浠諱綍鐨刾arser宸ュ叿綾?榛樿鎯呭喌涓嬫槸JAXP鐨刾arser銆?br>鍒跺畾鐗瑰埆鐨刾arser鍙敤濡備笅褰㈠紡
SAXBuilder parser
  = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl");
 Document doc = parser.build(" // work with the document...
JDOM涔熸敮鎸乀RaX錛歑SLT鍙氳繃JDOMSource浠ュ強JDOMResult綾繪潵杞崲錛堝弬瑙佷互鍚庣珷鑺傦級
2.娉ㄦ剰鍦↗DOM閲屾枃妗o紙Document錛夌被鐢眔rg.JDOM.Document 鏉ヨ〃紺恒傝繖瑕佷笌org.w3c.dom涓殑Document鍖哄埆寮錛岃繖2縐嶆牸寮忓浣曡漿鎹㈠湪鍚庨潰浼氳鏄庛?br>浠ヤ笅濡傛棤鐗規寚鍧囨寚JDOM閲岀殑Document銆?/p>


鍥涖丣DOM涓昏浣跨敤鏂規硶
1.Ducument綾?br>(1)Document鐨勬搷浣滄柟娉曪細
Element root = new Element("GREETING");
Document doc = new Document(root);
root.setText("Hello JDOM!");
鎴栬呯畝鍗曠殑浣跨敤Document doc = new Document(new Element("GREETING").setText("Hello JDOM!t"));

榪欑偣鍜孌OM涓嶅悓銆侱om鍒欓渶瑕佹洿涓哄鏉傜殑浠g爜錛屽涓嬶細
DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
DocumentBuilder builder =factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element root =doc.createElement("root");
Text text = doc.createText("This is the root");
root.appendChild(text);
doc.appendChild(root);


娉ㄦ剰浜嬮」錛欽DOM涓嶅厑璁稿悓涓涓妭鐐瑰悓鏃惰2涓垨澶氫釜鏂囨。鐩稿叧鑱旓紝瑕佸湪絎?涓枃妗d腑浣跨敤鍘熸潵鑰佹枃妗d腑鐨勮妭鐐圭殑璇濄傞鍏堥渶瑕佷嬌鐢╠etach()鎶婅繖涓妭鐐瑰垎寮鏉ャ?/p>

(2)浠庢枃浠躲佹祦銆佺郴緇烮D銆乁RL寰楀埌Document瀵硅薄錛?br>DOMBuilder builder = new DOMBuilder();
Document doc = builder.build(new File("jdom_test.xml"));

SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(url);
鍦ㄦ柊鐗堟湰涓璂OMBuilder 宸茬粡Deprecated鎺?DOMBuilder.builder(url)錛岀敤SAX鏁堢巼浼氭瘮杈冨揩銆?/p>

榪欓噷涓句竴涓皬渚嬪瓙錛屼負浜嗙畝鍗曡搗瑙侊紝浣跨敤String瀵硅薄鐩存帴浣滀負xml鏁版嵁婧愶細

 public jdomTest() {
    String textXml = null;
    textXml = "<note>";
    textXml = textXml +
        "<to>aaa</to><from>bbb</from><heading>ccc</heading><body>ddd</body>";
    textXml = textXml + "</note>";
    SAXBuilder builder = new SAXBuilder();
    Document doc = null;
    Reader in= new StringReader(textXml);
    try {
      doc = builder.build(in);
      Element root = doc.getRootElement();
      List ls = root.getChildren();//娉ㄦ剰姝ゅ鍙栧嚭鐨勬槸root鑺傜偣涓嬮潰鐨勪竴灞傜殑Element闆嗗悎
      for (Iterator iter = ls.iterator(); iter.hasNext(); ) {
        Element el = (Element) iter.next();
        if(el.getName().equals("to")){
         System.out.println(el.getText());
        }
      }
    }
    catch (IOException ex) {
      ex.printStackTrace();
    }
    catch (JDOMException ex) {
      ex.printStackTrace();
    }
  }

寰堢畝鍗曟妸銆?/p>


(3)DOM鐨刣ocument鍜孞DOM鐨凞ocument涔嬮棿鐨勭浉浜掕漿鎹嬌鐢ㄦ柟娉曪紝綆鍗曪紒
DOMBuilder builder = new DOMBuilder();
org.jdom.Document jdomDocument = builder.build(domDocument);
// work with the JDOM document…

DOMOutputter converter = new DOMOutputter();
org.w3c.dom.Document domDocument = converter.output(jdomDocument);
// work with the DOM document…

2.XML鏂囨。杈撳嚭
XMLOutPutter綾伙細
JDOM鐨勮緭鍑洪潪甯哥伒媧?鏀寔寰堝縐峣o鏍煎紡浠ュ強椋庢牸鐨勮緭鍑?br>Document doc = new Document(...);
XMLOutputter outp = new XMLOutputter();
// Raw output
outp.output(doc, fileOutputStream);
// Compressed output
outp.setTextTrim(true);
outp.output(doc, socket.getOutputStream());
// Pretty output
outp.setIndent(" ");
outp.setNewlines(true);
outp.output(doc, System.out);
......
璇︾粏璇峰弬闃呮渶鏂扮殑JDOM API鎵嬪唽


3.Element 綾伙細
(1)嫻忚Element鏍?br>//鑾峰緱鏍瑰厓绱爀lement
Element root = doc.getRootElement();
// 鑾峰緱鎵鏈夊瓙鍏冪礌鐨勪竴涓猯ist
List allChildren = root.getChildren();
// 鑾峰緱鎸囧畾鍚嶇О瀛愬厓绱犵殑list
List namedChildren = root.getChildren("name");
//鑾峰緱鎸囧畾鍚嶇О鐨勭涓涓瓙鍏冪礌
Element child = root.getChild("name");
錛堣繖閲岀殑List鏄痡ava.util.List錛?/p>

JDOM緇欎簡鎴戜滑寰堝寰堢伒媧葷殑浣跨敤鏂規硶鏉ョ鐞嗗瓙鍏冪礌
List allChildren = root.getChildren();
// 鍒犻櫎絎洓涓瓙鍏冪礌
allChildren.remove(3);
// 鍒犻櫎鍙?#8220;jack”鐨勫瓙鍏冪礌
allChildren.removeAll(root.getChildren("jack"));

root.removeChildren("jack"); // 渚挎嵎鍐欐硶
// 鍔犲叆
allChildren.add(new Element("jane"));

root.addContent(new Element("jane")); // 渚挎嵎鍐欐硶
allChildren.add(0, new Element("first"));


(2)縐誨姩Elements:
鍦↗DOM閲屽緢綆鍗?br>Element movable = new Element("movable");
parent1.addContent(movable); // place
parent1.removeContent(movable); // remove
parent2.addContent(movable); // add

鍦―om閲?br>Element movable = doc1.createElement("movable");
parent1.appendChild(movable); // place
parent1.removeChild(movable); // remove
parent2.appendChild(movable); // 鍑洪敊!

琛ュ厖錛?br>綰犻敊鎬?br>JDOM鐨凟lement鏋勯犲嚱鏁幫紙浠ュ強瀹冪殑鍏朵粬鍑芥暟錛変細媯鏌lement鏄惁鍚堟硶銆?br>鑰屽畠鐨刟dd/remove鏂規硶浼氭鏌ユ爲緇撴瀯錛屾鏌ュ唴瀹瑰涓嬶細
1.鍦ㄤ換浣曟爲涓槸鍚︽湁鍥炵幆鑺傜偣
2.鏄惁鍙湁涓涓牴鑺傜偣
3.鏄惁鏈変竴鑷寸殑鍛藉悕絀洪棿錛圢amespaces錛?/p>

 

(3)Element鐨則ext鍐呭璇誨彇
<description>
A cool demo
</description>

// The text is directly available
// Returns "\n A cool demo\n"
String desc = element.getText();

// There's a convenient shortcut
// Returns "A cool demo"
String desc = element.getTextTrim();

(4)Elment鍐呭淇敼
element.setText("A new description");
3.鍙紜В閲婄壒孌婂瓧絎?br>element.setText("<xml> content");
4.CDATA鐨勬暟鎹啓鍏ャ佽鍑?br>element.addContent(new CDATA("<xml> content"));
String noDifference = element.getText();

娣峰悎鍐呭
element鍙兘鍖呭惈寰堝縐嶅唴瀹癸紝姣斿璇?/p>

<table>
<!-- Some comment -->
Some text
<tr>Some child element</tr>
</table>

鍙杢able鐨勫瓙鍏冪礌tr
String text = table.getTextTrim();
Element tr = table.getChild("tr");

涔熷彲浣跨敤鍙﹀涓涓瘮杈冪畝鍗曠殑鏂規硶
List mixedCo = table.getContent();
Iterator itr = mixedCo.iterator();
while (itr.hasNext()) {
Object o = i.next();
if (o instanceof Comment) {
...
}
// 榪欓噷鍙互鍐欐垚Comment, Element, Text, CDATA,ProcessingInstruction, 鎴栬呮槸EntityRef鐨勭被鍨?br>}
// 鐜板湪縐婚櫎Comment,娉ㄦ剰榪欓噷娓告爣搴斾負1銆傝繖鏄敱浜庡洖杞﹂敭涔熻瑙f瀽鎴怲ext綾葷殑緙樻晠,鎵浠omment欏瑰簲涓?銆?br>mixedCo.remove(1);

 

4.Attribute綾?br><table width="100%" border="0"> </table>
//鑾峰緱attribute
String width = table.getAttributeValue("width");
int border = table.getAttribute("width").getIntValue();
//璁劇疆attribute
table.setAttribute("vspace", "0");
// 鍒犻櫎涓涓垨鍏ㄩ儴attribute
table.removeAttribute("vspace");
table.getAttributes().clear();

 

5.澶勭悊鎸囦護(Processing Instructions)鎿嶄綔
涓涓狿ls鐨勪緥瀛?br><?br?>
<?cocoon-process type="xslt"?>
          |        |
          |        |
        鐩爣     鏁版嵁

澶勭悊鐩爣鍚嶇О(Target)
String target = pi.getTarget();
鑾峰緱鎵鏈夋暟鎹紙data錛夛紝鍦ㄧ洰鏍囷紙target錛変互鍚庣殑鎵鏈夋暟鎹兘浼氳榪斿洖銆?br>String data = pi.getData();
鑾峰緱鎸囧畾灞炴х殑鏁版嵁
String type = pi.getValue("type");
鑾峰緱鎵鏈夊睘鎬х殑鍚嶇О
List ls = pi.getNames();

6.鍛藉悕絀洪棿鎿嶄綔
<xhtml:html
 xmlns:xhtml="
<xhtml:title>Home Page</xhtml:title>
</xhtml:html>

Namespace xhtml = Namespace.getNamespace("xhtml", "List kids = html.getChildren("title", xhtml);
Element kid = html.getChild("title", xhtml);
kid.addContent(new Element("table", xhtml));

7.XSLT鏍煎紡杞崲
浣跨敤浠ヤ笅鍑芥暟鍙XSLT杞崲
鏈鍚庡鏋滀綘闇瑕佷嬌鐢╳3c鐨凞ocument鍒欓渶瑕佽漿鎹竴涓嬨?br>public static Document transform(String stylesheet錛孌ocument in)
                                        throws JDOMException {
     try {
       Transformer transformer = TransformerFactory.newInstance()
                             .newTransformer(new StreamSource(stylesheet));
       JDOMResult out = new JDOMResult();
       transformer.transform(new JDOMSource(in), out);
       return out.getDeocument();
     }
     catch (TransformerException e) {
       throw new JDOMException("XSLT Trandformation failed", e);
     }
   }

 



java_tju 2007-06-05 20:03 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 昌乐县| 上栗县| 大丰市| 大荔县| 碌曲县| 凤冈县| 淮阳县| 双辽市| 焉耆| 古浪县| 鄂州市| 克拉玛依市| 洛扎县| 广水市| 苏尼特右旗| 太仆寺旗| 利川市| 恩施市| 韶关市| 蓬安县| 通州区| 天津市| 尼玛县| 原平市| 乌鲁木齐县| 玉龙| 澄江县| 体育| 连平县| 营口市| 广元市| 清水河县| 阆中市| 泽州县| 合阳县| 巴林右旗| 和平县| 揭东县| 措勤县| 固原市| 横峰县|