[java]操作XML
来源:互联网 发布:2014年网络歌曲排行榜 编辑:程序博客网 时间:2024/05/29 08:42
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>();public 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();document = reader.read(in);this.elements = getAllElements(getRootElement());} finally {in.close();}}public static Document createDocument() {Document document = DocumentFactory.getInstance().createDocument();document.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.get(0);return null;}public List<Element> findByAttribute(String attrName, String attrValue) {List<Element> ele = new ArrayList<Element>();for (Element e : this.elements) {Attribute attr = e.attribute(attrName);if (attr != null && attrValue.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() {return document;}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);save(out);out.close();}public void save(File file) throws SAXException, IOException {FileOutputStream out = new FileOutputStream(file);save(out);out.close();}public void save(OutputStream out) throws SAXException, IOException {out.write(document.asXML().getBytes());}public void dispose() {this.elements.clear();}}
1 0
- xml-03-Java操作XML
- java中操作XML
- JAVA操作XML大全
- java 操作XML
- java操作xml小结
- java+dom4j操作XML
- Java操作XML
- java操作xml文件
- JAVA 操作xml
- Java操作XML对象
- 使用Java操作XML
- Java操作XML
- Java操作XML范例
- java 操作XML
- java操作xml
- java xpah 操作xml
- Java XML操作总结
- java操作XML
- 检测录音程序是否被禁用 录音权限
- Google 将设立 Android 安全奖励项目 奖金达 38000 美元
- SAT填空题练习题精选
- 深入理解Java的接口和抽象类
- HDU 1042 N! (大整数阶乘)
- [java]操作XML
- 同一个tomcat不同项目的session共享问题
- 找第K大数(ACdream 1099)
- pip virtualenv requirements
- 多线程与java运行环境的总结
- POJ 1005 && HDU 1065 I Think I Need a Houseboat(水~)
- Oracle物化视图的一般使用
- C# 利用list.sort()进行排序
- Android Studio实战技巧