[Java] Operation XML

Source: Internet
Author: User


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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.