Import Java.io.file;import java.io.fileinputstream;import java.io.fileoutputstream;import java.io.IOException; Import Java.io.inputstream;import java.io.outputstream;import Java.util.arraylist;import Java.util.List;import Org.dom4j.attribute;import Org.dom4j.document;import Org.dom4j.documentfactory;import Org.dom4j.Element;import Org.dom4j.io.saxreader;import Org.xml.sax.saxexception;public class Xmlutil {private document document; list<element> elements = new arraylist<element> ();p ublic static Xmlutil getinstance () {return new Xmlutil (); Private Xmlutil () {}public void load (String URL) throws Exception {FileInputStream in = new FileInputStream (URL), load (in); }public void Load (file file) throws Exception {FileInputStream in = new FileInputStream (file), load (in);} public void Load (InputStream in) throws Exception {try {saxreader reader = new Saxreader ();d ocument = Reader.read (in); . elements = Getallelements (Getrootelement ());} finally {in.close ();}} public static Document CreaTedocument () {Document document = Documentfactory.getinstance (). CreateDocument ();d ocument.setxmlencoding ("GBK"); return document;} Public list<element> getallelements (element Element) {list<element> elements = new Arraylist<element > (); if (element.elements (). Size () = = 0) {Elements.add (element); return elements;} else {elements.add (element); for ( Object o:element.elements ()) {element e = (Element) O;elements.addall (Getallelements (e));} return elements;}} Public List Findbypath (String path) {return getrootelement (). elements (path); Public Element FindByID (String id) {list<element> ele = Findbyattribute ("id", id); if (ele.size () > 0) return ele.g ET (0); return null;} Public list<element> Findbyattribute (string attrname, String attrValue) {list<element> ele = new arraylist& Lt Element> (); for (Element e:this.elements) {Attribute attr = E.attribute (attrname); if (attr! = null && Attrvalu E.equals (Attr.getvalue ())) {Ele.add (e);}} return ele;} Public list< Element> getelements () {return elements;} public void setelements (list<element> elements) {this.elements = elements;} public int Findelementindex (Element e) {int index = THIS.ELEMENTS.INDEXOF (e); return index > 0? index-1: Index;} public void Updateelement (element element, int index) {element e = this.elements.get (index); This.elements.set (Index, Element); removeelement (index); e.getparent (). Add (Element); public void AddElement (element parentelement, element e) {Parentelement.add (e); This.elements.add (e);} public boolean removeelement (Element e) {this.elements.remove (e); return e.getparent (). Remove (e); public boolean removeelement (int index) {this.elements.remove (index); Element e = this.elements.get (index), return e.getparent (). Remove (e); Public Element getrootelement () {return document.getrootelement ();} Public String GetEncoding () {return document.getxmlencoding ();} public void setencoding (String encoding) {document.setxmlencoding (encoding);} Public Document GetDocument () {returnDocument;} public void Setdocument (document document) {this.document = Document;this.elements = Getallelements (Getrootelement ());} public void Save (String url) throws Saxexception, IOException {fileoutputstream out = new FileOutputStream (URL); ; Out.close ();} public void Save (file file) throws Saxexception, IOException {fileoutputstream out = new FileOutputStream (file); ; Out.close ();} public void Save (OutputStream out) throws Saxexception, IOException {out.write (Document.asxml (). GetBytes ());} public void Dispose () {this.elements.clear ();}}
[Java] Operation XML