dom4j对于xml文件的操作

来源:互联网 发布:方正手机炒股软件 编辑:程序博客网 时间:2024/05/01 06:18
  • 1. 引入jar包
  • dom4j-1.6.jar
  • jaxen-1.1-beta-8.jar

  • 2. 代码
  • package test;

  • import java.io.ByteArrayOutputStream;

  • public class XMLTest {
    • public static Document loadFile(String path) throws Exception {
    • SAXReader saxReader = new SAXReader();
    • Document document = saxReader.read(new File(XMLTest.class.getResource(path).getFile()));
    • return document;
  • }

  • public static void writeFile(Document document, String path) throws Exception {
    • OutputFormat format = OutputFormat.createPrettyPrint();
    • format.setEncoding("UTF8");
    • File file = new File(XMLTest.class.getResource(path).getFile());
    • if(file.exists()) 
    • file.delete();
    • XMLWriter writer = new XMLWriter(new FileWriter("src//test//" + path), format);
    • writer.write(document);
    • writer.close();
  • }

  • // 创建xml
  • public static void createXml() throws Exception {
    • Document document = DocumentHelper.createDocument();
    • Element configElement = document.addElement("config");
    • configElement.addComment("config-content");
    • Element ftpElement = configElement.addElement("ftp");
    • ftpElement.addAttribute("name", "name1");
    • ftpElement.addElement("host1").setText("127.0.0.1");
    • ftpElement.addElement("host2").setText("127.0.0.1");
    • ftpElement.addElement("port").setText("21");

    • writeFile(document, "xmlTest.xml");
  • }

  • // 查看内容
  • public static void showXML(String path) throws Exception {
    • Document document = loadFile(path);
    • ByteArrayOutputStream out = new ByteArrayOutputStream();
    • OutputFormat format = new OutputFormat("", true, "UTF8");
    • XMLWriter write = new XMLWriter(out, format);
    • write.write(document);
    • String s = out.toString("UTF8");
    • System.out.println(s);
  • }

  • // 查看结点内容
  • public static void showXMLNode(String path) throws Exception {
    • Document document = loadFile(path);
    • Element root = document.getRootElement();
    • System.out.println(root.asXML()); //查看根节点下的所有数据
    • List list = root.selectNodes("/config/ftp");
    • System.out.println(list.size());
    • for (int i = 0; i < list.size(); ++i) {
      • Element element = (Element) list.get(i);
      • System.out.println(element.attributeValue("name"));
    • }
  • }
  • // 修改或删除结点
  • public static void changeAndDelete(String path) throws Exception {
    • Document document = loadFile(path);
    • Element root = document.getRootElement();
    • Element ftpElement = (Element) root.selectSingleNode("/config/ftp");
    • Element host1Element = (Element) ftpElement.selectSingleNode("host1");
    • System.out.println(host1Element.asXML());
    • host1Element.setText("127.1.1.1");
    • System.out.println(ftpElement.remove(host1Element)); // 可以删除结点,也可以删除属性
    • writeFile(document, path);  // 必须要重写
  • }

  • public static void main(String[] args) throws Exception {
    • // createXml();
    • // showXML("xmlTest.xml");
    • // showXMLNode("xmlTest.xml");
    • changeAndDelete("xmlTest.xml");
  • }
  • }
0 0
原创粉丝点击