java项目概览:

XmlManage.java
- package com.jialin;
-
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
-
- import org.dom4j.Attribute;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.SAXReader;
- import org.dom4j.io.XMLWriter;
-
- public class XmlManager {
- public static void main(String[] args) {
- XmlManager xmlManager = new XmlManager();
-
- Document doc = null;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- String inputPath = "xml/Students.xml";
-
-
-
-
-
- doc = xmlManager.getDocument(inputPath);
-
- xmlManager.traversalDocumentByElementIterator(doc);
-
-
-
- }
-
-
- public Document getDocument(String inputPath) {
-
- File inputXml = new File(inputPath);
- SAXReader saxReader = new SAXReader();
- Document document = null;
- try {
- document = saxReader.read(inputXml);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
- return document;
- }
-
-
- public Document createXml() {
- Document doc = DocumentHelper.createDocument();
-
- Map<String, String> inMap = new HashMap<String, String>();
- inMap.put("type", "text/xsl");
- inMap.put("href", "students.xsl");
- doc.addProcessingInstruction("xml-stylesheet", inMap);
-
- Element studentsElement = doc.addElement("Students");
-
- studentsElement.addComment("Students Table");
-
- Element stuElement = studentsElement.addElement("student");
-
- stuElement.addAttribute("stu", "001");
-
- Element nameElement = stuElement.addElement("name");
-
- nameElement.setText("张三");
-
- Element ageElement = stuElement.addElement("age");
-
- ageElement.setText("18");
-
-
- Element anotherStuElement = studentsElement.addElement("student");
- anotherStuElement.addAttribute("stu", "002");
- Element anotherNameElement = anotherStuElement.addElement("name");
- anotherNameElement.setText("李四");
- Element anotherAgeElement = anotherStuElement.addElement("age");
- anotherAgeElement.setText("19");
-
- return doc;
- }
-
-
- public Document createDocumentByString(String xmlStr) {
-
- Document doc = null;
- try {
-
- doc = DocumentHelper.parseText(xmlStr);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
- return doc;
- }
-
-
- public void ModifyXml(String inputXmlPath) {
-
- File inputXml = new File(inputXmlPath);
-
- try {
- SAXReader saxReader = new SAXReader();
-
- Document doc = saxReader.read(inputXml);
-
- List list = doc.selectNodes("/Students/student/@stu");
- Iterator iter = list.iterator();
- while (iter.hasNext()) {
- Attribute attribute = (Attribute) iter.next();
- if (attribute.getValue().equals("001"))
- attribute.setValue("0001");
- }
-
- list = doc.selectNodes("/Students/student");
- iter = list.iterator();
- while (iter.hasNext()) {
- Element element = (Element) iter.next();
- Iterator iterator = element.elementIterator("name");
- while (iterator.hasNext()) {
- Element nameElement = (Element) iterator.next();
- if (nameElement.getText().equals("张三"))
- nameElement.setText("王五");
- }
- }
- String outputPath = "xml/Students-Modified.xml";
- saveDocument(doc, outputPath);
-
- }
-
- catch (DocumentException e) {
- System.out.println(e.getMessage());
- }
-
- }
-
-
- public void saveDocument(Document doc, String outputPath) {
-
- File outputFile = new File(outputPath);
- try {
-
- OutputFormat format = OutputFormat.createPrettyPrint();
-
- format.setEncoding("UTF-8");
- XMLWriter output = new XMLWriter(new FileWriter(outputFile), format);
- output.write(doc);
- output.close();
- } catch (IOException e) {
- System.out.println(e.getMessage());
- }
- }
-
-
- public void traversalDocumentByElementIterator(Document doc) {
-
- Element root = doc.getRootElement();
-
- for (Iterator ie = root.elementIterator(); ie.hasNext();) {
- System.out.println("======");
- Element element = (Element) ie.next();
- System.out.println(element.getName());
-
-
- for (Iterator ia = element.attributeIterator(); ia.hasNext();) {
- Attribute attribute = (Attribute) ia.next();
- System.out.println(attribute.getName() + ":"
- + attribute.getData());
- }
-
- for (Iterator ieson = element.elementIterator(); ieson.hasNext();) {
- Element elementSon = (Element) ieson.next();
- System.out.println(elementSon.getName() + ":"
- + elementSon.getText());
- }
- }
- }
-
-
- public static void traversalDocumentByElements(Document doc) {
-
- Element root = doc.getRootElement();
-
- List list = root.elements("student");
-
- for (Object obj : list) {
- Element el = (Element) obj;
- System.out.println("----------"+el.getName()+"-----------");
-
- List listName = el.elements("name");
-
- List listAge = el.elements("age");
- for (int i=0;i<listName.size();i++) {
- Element elname = (Element) listName.get(i);
-
- System.out.println(elname.getName() + ": " + elname.getText());
- Element elage = (Element) listAge.get(i);
-
- System.out.println(elage.getName() + ": " + elage.getText());
-
- }
-
- }
- }
-
-
- public static void traversalDocumentByselectNodes(Document doc,
- String elementpath) {
-
- List list = doc.selectNodes(elementpath);
-
-
- for (Iterator ie = list.iterator(); ie.hasNext();) {
- Element el = (Element) ie.next();
- System.out.println(el.getName() + ": " + el.getText());
-
- }
-
- }
-
-
- public void traversalDocumentByVisitor(Document doc) {
- doc.accept(new MyVisitor());
- }
-
- }
MyVisitor.java
- package com.jialin;
-
- import org.dom4j.Attribute;
- import org.dom4j.Element;
- import org.dom4j.ProcessingInstruction;
- import org.dom4j.VisitorSupport;
-
- public class MyVisitor extends VisitorSupport {
-
- public void visit(Attribute node) {
- System.out.println("attribute : " + node.getName() + " = "
- + node.getValue());
- }
-
-
- public void visit(ProcessingInstruction node) {
- System.out.println("PI : " + node.getTarget() + " "
- + node.getText());
- }
-
-
- public void visit(Element node) {
- if (node.isTextOnly())
- System.out.println("element : " + node.getName() + " = "
- + node.getText());
- else
- System.out.println("《《《《《《" + node.getName() + "》》》》》》");
- }
- }
测试dom4j创建、修改、遍历XML
原文:http://www.cnblogs.com/niuchunjian/p/4520205.html