zoukankan      html  css  js  c++  java
  • dom4j处理xml文件,读取xml字符串,格式化xml文件

    1.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <employees>
        <employee>
            <name>steve</name>
            <sex>m</sex>
            <age>30</age>
        </employee>
    </employees>

    2.java interface

    /**
     * @author huangjing
     * @date 2014-2-13 
     * 定义XML文档建立与解析的接口 
     */
    public interface XmlDocument {
        /** * 建立XML文档 * @param fileName 文件全路径名称 */ 
        public void createXml(String fileName); 
        
        /** * 解析XML文档 * @param fileName 文件全路径名称 */ 
        public void parserXml(String fileName); 
        
        /***
         * 解析短信发送返回的xml信息,封装成map.
         * @param sms
         * @return
         */
        public Map parserSmsXml(String sms);
    }

    3.java implements

    /**
     * @author huangjing
     * @date 2014-2-13
     */
    public class Dom4j implements XmlDocument {
    
        @Override
        public void createXml(String fileName) {
            Document document = DocumentHelper.createDocument();
            Element employees = document.addElement("employees");
            Element employee = employees.addElement("employee");
            Element name = employee.addElement("name");
            name.setText("dddvip");
            Element sex = employee.addElement("sex");
            sex.setText("f");
            Element age = employee.addElement("age");
            age.setText("29");
            try {
                /** 格式化输出,类型IE浏览一样 */  
                OutputFormat format = OutputFormat.createPrettyPrint();  
    
                Writer fileWriter = new FileWriter(fileName);
                XMLWriter xmlWriter = new XMLWriter(fileWriter,format);
                xmlWriter.write(document);
                xmlWriter.close();
            } catch (IOException e) {
                System.out.println(e.getMessage());
            }
        }
    
        @Override
        public void parserXml(String fileName) {
            File inputXml = new File(fileName);
            SAXReader saxReader = new SAXReader();
            try {
                Document document = saxReader.read(inputXml);
                Element employees = document.getRootElement();
                for (Iterator i = employees.elementIterator(); i.hasNext();) {
                    Element employee = (Element) i.next();
                    for (Iterator j = employee.elementIterator(); j.hasNext();) {
                        Element node = (Element) j.next();
                        System.out.println(node.getName() + ":" + node.getText());
                    }
                }
            } catch (DocumentException e) {
                System.out.println(e.getMessage());
            }
            System.out.println("dom4j parserXml");
        }
    
        @Override
        public Map parserSmsXml(String sms) {
            Map map = new HashMap();
    //        SAXReader saxReader = new SAXReader();
            try {
                Document document = DocumentHelper.parseText(sms);
                Element returnsms = document.getRootElement();
                for (Iterator i = returnsms.elementIterator(); i.hasNext();) {
    //                Element employee = (Element) i.next();
    //                for (Iterator j = employee.elementIterator(); j.hasNext();) {
                        Element node = (Element) i.next();
    //                    System.out.println(node.getName() + ":" + node.getText());
                        map.put(node.getName(), node.getText());
    //                }
                }
            } catch (DocumentException e) {
                e.printStackTrace();
                System.out.println(e.getMessage());
            }
            return map;
        }
    }

    4.测试parserSmsXml方法

    @Test
        public void testParserSmsXml(){
            String sms = "<?xml version='1.0' encoding='utf-8' ?><returnsms>"+
                 "<returnstatus>Success</returnstatus>"+
                 "<message>ok</message>"+
                 "<remainpoint>76904</remainpoint>"+
                 "<taskID>5002192</taskID>"+
                 "<successCounts>1</successCounts></returnsms>";
            XmlDocument d = new Dom4j();
            Map map = d.parserSmsXml(sms);
            System.out.println(map);
        }



  • 相关阅读:
    20160220.CCPP体系详解(0030天)
    20160219.CCPP体系详解(0029天)
    20160217.CCPP体系详解(0027天)
    Discuz 如何开启 memcache
    20160216.CCPP体系详解(0026天)
    20160215.CCPP体系详解(0025天)
    Linux之父:诺基亚更应选择 Android 平台
    Linux 之父 Linus 的 8 个趣闻轶事
    Linux 中识别 USB 设备名字的 4 种方法
    码农们加班是“心甘情愿”吗?都是被“逼”的
  • 原文地址:https://www.cnblogs.com/simpledev/p/3552228.html
Copyright © 2011-2022 走看看