锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浜屻丣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
浣跨敤鍓嶆敞鎰忎簨欏癸細 榪欑偣鍜孌OM涓嶅悓銆侱om鍒欓渶瑕佹洿涓哄鏉傜殑浠g爜錛屽涓嬶細 (2)浠庢枃浠躲佹祦銆佺郴緇烮D銆乁RL寰楀埌Document瀵硅薄錛?br>DOMBuilder builder = new DOMBuilder(); SAXBuilder builder = new SAXBuilder(); 榪欓噷涓句竴涓皬渚嬪瓙錛屼負浜嗙畝鍗曡搗瑙侊紝浣跨敤String瀵硅薄鐩存帴浣滀負xml鏁版嵁婧愶細 public jdomTest() { 寰堢畝鍗曟妸銆?/p>
DOMOutputter converter = new DOMOutputter(); 2.XML鏂囨。杈撳嚭 JDOM緇欎簡鎴戜滑寰堝寰堢伒媧葷殑浣跨敤鏂規(guī)硶鏉ョ鐞嗗瓙鍏冪礌 root.removeChildren("jack"); // 渚挎嵎鍐欐硶 root.addContent(new Element("jane")); // 渚挎嵎鍐欐硶 鍦―om閲?br>Element movable = doc1.createElement("movable"); 琛ュ厖錛?br>綰犻敊鎬?br>JDOM鐨凟lement鏋勯犲嚱鏁幫紙浠ュ強瀹冪殑鍏朵粬鍑芥暟錛変細媯鏌lement鏄惁鍚堟硶銆?br>鑰屽畠鐨刟dd/remove鏂規(guī)硶浼氭鏌ユ爲緇撴瀯錛屾鏌ュ唴瀹瑰涓嬶細 (3)Element鐨則ext鍐呭璇誨彇 // The text is directly available // There's a convenient shortcut (4)Elment鍐呭淇敼 娣峰悎鍐呭 <table> 鍙杢able鐨勫瓙鍏冪礌tr 涔熷彲浣跨敤鍙﹀涓涓瘮杈冪畝鍗曠殑鏂規(guī)硶 4.Attribute綾?br><table width="100%" border="0"> </table> 5.澶勭悊鎸囦護(Processing Instructions)鎿嶄綔 澶勭悊鐩爣鍚嶇О(Target) 6.鍛藉悕絀洪棿鎿嶄綔 Namespace xhtml = Namespace.getNamespace("xhtml", "List kids = html.getChildren("title", xhtml); 7.XSLT鏍煎紡杞崲
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>浠ヤ笅濡傛棤鐗規(guī)寚鍧囨寚JDOM閲岀殑Document銆?/p>
鍥涖丣DOM涓昏浣跨敤鏂規(guī)硶
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"));
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>
Document doc = builder.build(new File("jdom_test.xml"));
Document doc = builder.build(url);
鍦ㄦ柊鐗堟湰涓璂OMBuilder 宸茬粡Deprecated鎺?DOMBuilder.builder(url)錛岀敤SAX鏁堢巼浼氭瘮杈冨揩銆?/p>
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();
}
}
(3)DOM鐨刣ocument鍜孞DOM鐨凞ocument涔嬮棿鐨勭浉浜掕漿鎹嬌鐢ㄦ柟娉曪紝綆鍗曪紒
DOMBuilder builder = new DOMBuilder();
org.jdom.Document jdomDocument = builder.build(domDocument);
// work with the JDOM document…
org.w3c.dom.Document domDocument = converter.output(jdomDocument);
// work with the DOM document…
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>
List allChildren = root.getChildren();
// 鍒犻櫎絎洓涓瓙鍏冪礌
allChildren.remove(3);
// 鍒犻櫎鍙?#8220;jack”鐨勫瓙鍏冪礌
allChildren.removeAll(root.getChildren("jack"));
// 鍔犲叆
allChildren.add(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
parent1.appendChild(movable); // place
parent1.removeChild(movable); // remove
parent2.appendChild(movable); // 鍑洪敊!
1.鍦ㄤ換浣曟爲涓槸鍚︽湁鍥炵幆鑺傜偣
2.鏄惁鍙湁涓涓牴鑺傜偣
3.鏄惁鏈変竴鑷寸殑鍛藉悕絀洪棿錛圢amespaces錛?/p>
<description>
A cool demo
</description>
// Returns "\n A cool demo\n"
String desc = element.getText();
// Returns "A cool demo"
String desc = element.getTextTrim();
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>
<!-- Some comment -->
Some text
<tr>Some child element</tr>
</table>
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);
//鑾峰緱attribute
String width = table.getAttributeValue("width");
int border = table.getAttribute("width").getIntValue();
//璁劇疆a(chǎn)ttribute
table.setAttribute("vspace", "0");
// 鍒犻櫎涓涓垨鍏ㄩ儴attribute
table.removeAttribute("vspace");
table.getAttributes().clear();
涓涓狿ls鐨勪緥瀛?br><?br?>
<?cocoon-process type="xslt"?>
| |
| |
鐩爣 鏁版嵁
String target = pi.getTarget();
鑾峰緱鎵鏈夋暟鎹紙data錛夛紝鍦ㄧ洰鏍囷紙target錛変互鍚庣殑鎵鏈夋暟鎹兘浼氳榪斿洖銆?br>String data = pi.getData();
鑾峰緱鎸囧畾灞炴х殑鏁版嵁
String type = pi.getValue("type");
鑾峰緱鎵鏈夊睘鎬х殑鍚嶇О
List ls = pi.getNames();
<xhtml:html
xmlns:xhtml="<xhtml:title>Home Page</xhtml:title>
</xhtml:html>
Element kid = html.getChild("title", xhtml);
kid.addContent(new Element("table", xhtml));
浣跨敤浠ヤ笅鍑芥暟鍙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);
}
}
]]>
主站蜘蛛池模板:
同江市|
青冈县|
凉城县|
海口市|
营山县|
武功县|
略阳县|
鸡西市|
友谊县|
海口市|
阳东县|
景洪市|
祁连县|
盖州市|
佳木斯市|
邵阳县|
郎溪县|
弋阳县|
武邑县|
铁岭县|
喀什市|
高台县|
乌苏市|
红原县|
临沂市|
巴林右旗|
门源|
偃师市|
明光市|
措美县|
闽侯县|
工布江达县|
江安县|
榆树市|
子长县|
深水埗区|
调兵山市|
焦作市|
高安市|
衡南县|
濮阳县|