• JAVA使用Dom4j组装、解析XML


      dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。

    具体操作如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <msg>
      <content>
        <name>xiaohua</name>
        <address>china</address>
      </content>
      <other>
        <car>
          <carCode>99999</carCode>
          <carNo xmlns:jsdl="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdl"

    xmlns:jsdlws="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdlws"><![CDATA[<author>xiaoming</author>]]

    ></carNo>
        </car>
      </other>
    </msg>

      /**
         * 组装XML
         */
        public static void CreateXML(){
            Document document = DocumentHelper.createDocument();
            Element rootElement = document.addElement("msg");
            Element contentElement = rootElement.addElement("content");
            Element verElement = contentElement.addElement("name");
            verElement.addText("xiaohua");
            Element addressElement = contentElement.addElement("address");
            addressElement.addText("china");
            Element otherElement = rootElement.addElement("other");
            Element carElement = otherElement.addElement("car");
            Element taxOrgCodeElement = carElement.addElement("carCode");
            taxOrgCodeElement.addText("99999");
            Element carNoElement = carElement.addElement("carNo");
            carNoElement.addNamespace("jsdl", "http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdl");
            carNoElement.addNamespace("jsdlws", "http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdlws");
            String cdataString = "<author>xiaoming</author>";
            carNoElement.addCDATA(cdataString);
            
            //文件输出
            OutputFormat outputFormat = null;
            try {
                String fileName = "D:\tmp\test.xml";
                outputFormat = OutputFormat.createPrettyPrint();
                outputFormat.setEncoding("UTF-8");
                XMLWriter xw = new XMLWriter(new FileOutputStream(fileName),outputFormat);
                outputFormat.setNewLineAfterDeclaration(false);
                xw.write(document);
                xw.close();
            } catch (Exception e) {
                System.out.println(e);
            }
            
        }


      /**
         * 读取XML
         */
        public static void readXML(){
            try {
                String filePath = "D:\tmp\test.xml";
                SAXReader reader = new SAXReader();
                Document document = reader.read(new File(filePath));
                Element msgElement = document.getRootElement();
                Element contentElement = msgElement.element("content");
                Element varElement = contentElement.element("name");
                String name = varElement.getText();
                System.out.println("名字:"+name);
                Element otherElement = msgElement.element("other");
                Element carHeadElement = otherElement.element("car");
                Element taxorgCodeElement =carHeadElement.element("carCode");
                System.out.println("carCode:"+taxorgCodeElement.getText());
                Element carNoElemnet = carHeadElement.element("carNo");
                System.out.println("carNo:"+carNoElemnet.getText());
                Element documents = (Element)document.selectNodes("msg/other/car/carNo").get(0);
                String s = documents.getStringValue();
                System.out.println("s:"+s);
                Document documentt = DocumentHelper.parseText(s);
                Node node = documentt.selectSingleNode("author");
                System.out.println("CDATA重的内容:"+node.getStringValue());
            } catch (Exception e) {
                System.out.println(e);
            }
        }

  • 相关阅读:
    GridView多行多列合并单元格(指定列合并)
    项目管理知识体系指南PMBOK指南
    作业调度框架 Quartz.NET 2.0 beta 发布
    外语学习有助于大脑发育
    抢书之JS版
    mac 安装python和Django开发环境
    戏谈一道面试题
    —安装时填写注册表
    深入浅出SQL Server Replication第一篇:走近Replication(上)
    IIS寄宿方式的Web地址、BaseAddress和EndPoint Address的关系
  • 原文地址:https://www.cnblogs.com/weinan2087/p/5168494.html
Copyright © 2020-2023  润新知