读书人

JDOM重要使用方法以及类

发布时间: 2012-12-18 12:43:41 作者: rapoo

JDOM主要使用方法以及类

s拷贝粘贴而来f

1.Ducument类(1)Document的操作方法:Element root=new Element("GREETING");Document doc=new Document(root);root.setText("HelloJDOM!");或者简单的使用Document doc=new Document(new Element("GREETING").setText("HelloJDOM!t"));这点和DOM不同。Dom则需要更为复杂的代码,如下:DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();Documentdoc=builder.newDocument();Element root=doc.createElement("root");Text text=doc.createText("Thisistheroot");root.appendChild(text);doc.appendChild(root);注意事项:JDOM不允许同一个节点同时被2个或多个文档相关联,要在第2个文档中使用原来老文档中的节点的话。首先需要使用detach()把这个节点分开来。(2)从文件、流、系统ID、URL得到Document对象:DOMBuilder builder=new DOMBuilder();Document doc=builder.build(newFile("jdom_test.xml"));SAXBuilder builder=new SAXBuilder();Document doc=builder.build(url);在新版本中DOMBuilder已经Deprecated掉 DOMBuilder.builder(url),用SAX效率会比较快。这里举一个小例子,为了简单起见,使用String对象直接作为xml数据源:Public jdom Test(){String textXml=null;textXml="";textXml=textXml+"aaabbbcccddd";textXml=textXml+"";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(Iteratoriter=ls.iterator();iter.hasNext();){Element el=(Element)iter.next();if(el.getName().equals("to")){System.out.println(el.getText());}}}catch(IOExceptionex){ex.printStackTrace();}catch(JDOMExceptionex){ex.printStackTrace();}}(3)DOM的document和JDOM的Document之间的相互转换使用方法,简单!DOMBuilder builder=new DOMBuilder();org.jdom.Document jdomDocument=builder.build(domDocument);DOMOutputter converter=newDOMOutputter();//workwiththeJDOMdocument…org.w3c.dom.Document domDocument=converter.output(jdomDocument);//workwiththeDOMdocument…2.XML文档输出XMLOutPutter类:JDOM的输出非常灵活,支持很多种io格式以及风格的输出Document doc=newDocument(...);XMLOutputter outp=newXMLOutputter();outp.output(doc,fileOutputStream);//Rawoutputoutp.setTextTrim(true);//Compressedoutputoutp.output(doc,socket.getOutputStream());outp.setIndent("");//Prettyoutputoutp.setNewlines(true);outp.output(doc,System.out);详细请参阅最新的JDOMAPI手册3.Element类:(1)浏览Element树Element root=doc.getRootElement();//获得根元素elementList allChildren=root.getChildren();//获得所有子元素的一个listList namedChildren=root.getChildren("name");//获得指定名称子元素的listElement child=root.getChild("name");//获得指定名称的第一个子元素JDOM给了我们很多很灵活的使用方法来管理子元素(这里的List是 java.util.List)List allChildren=root.getChildren();allChildren.remove(3);//删除第四个子元素allChildren.removeAll(root.getChildren("jack"));//删除叫“jack”的子元素root.removeChildren("jack");//便捷写法allChildren.add(newElement("jane"));//加入root.addContent(newElement("jane"));//便捷写法allChildren.add(0,newElement("first"));(2)移动Elements:在JDOM里很简单Element movable=newElement("movable");parent1.addContent(movable);//placeparent1.removeContent(movable);//removeparent2.addContent(movable);//add在Dom里Element movable=doc1.createElement("movable");parent1.appendChild(movable);//placeparent1.removeChild(movable);//removeparent2.appendChild(movable);//出错!补充:纠错性JDOM的Element构造函数(以及它的其他函数)会检查element是否合法。而它的add/remove方法会检查树结构,检查内容如下:1.在任何树中是否有回环节点2.是否只有一个根节点3.是否有一致的命名空间(Namespaces)(3)Element的text内容读取Acooldemo//Thetextisdirectlyavailable//Returns"\nAcooldemo\n"String desc=element.getText();//There'saconvenientshortcut//Returns"Acooldemo"String desc=element.getTextTrim();(4)Elment内容修改element.setText("Anewdescription");3.可正确解释特殊字符element.setText("

?

?

sdf拷贝粘贴而来sd

读书人网 >编程

热点推荐