Java读取,生成XML文本,文件

来源:互联网 发布:单片机汇编语言 编辑:程序博客网 时间:2024/05/21 09:34

通过本类可以学到

1.读取并解析XML文件

2.写入XML格式内容,并生成XML文件

3.读取并解析XML格式的String

4.写入XML格式内容,并生成String

范例:

package com.qingrong.testXML;/** * Created by Administrator on 2015/3/8 0008. */import org.dom4j.*;import org.dom4j.io.SAXReader;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.Iterator;import java.util.List;public class TestXML {    @Test    public void testXMLRead(){        try{//            //将src下面的xml转换为输入流//            InputStream inputStream = this.getClass().getResourceAsStream("/module03.xml");//            //创建SAXReader读取器,专门用于读取xml//            SAXReader saxReader = new SAXReader();//            //根据saxReader的read重写方法可知,既可以通过inputStream输入流来读取,也可以通过file对象来读取//            Document document = saxReader.read(inputStream);            String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>  " +                    "<modules id=\"123\">  " +                    "     <module>这个是module标签的文本信息</module>  " +                    "    <module id=\"\">  " +                    "        <name>oa</name>  " +                    "        <value>系统基本配置</value>  " +                    "        <descript>对系统的基本配置根目录</descript>  " +                    "        <module2>这个是子module2标签的文本信息</module2>  " +                    "    </module>  " +                    "     <module>  " +                    "        <name>管理配置</name>  " +                    "        <value>none</value>  " +                    "        <descript>管理配置的说明</descript>  " +                    "        <module id=\"106\">  " +                    "            <name>系统管理</name>  " +                    "            <value>0</value>  " +                    "            <descript>Config</descript>  " +                    "            <module2 id=\"107\">  " +                    "                <name>部门编号</name>  " +                    "                <value>20394</value>  " +                    "                <descript>编号</descript>  " +                    "            </module2>  " +                    "        </module>  " +                    "    </module>  " +                    "</modules>  ";            Document document = DocumentHelper.parseText(xmlString);;            Element rootElement = document.getRootElement();            if(rootElement.elements("module") != null ){                //因为第一个module标签只有内容没有子节点,直接.iterator()就java.lang.NullPointerException了, 所以需要分开实现                List<Element> elementList = rootElement.elements("module");                for (Element element : elementList) {                    if(!element.getTextTrim().equals("")){                        System.out.println(element.getTextTrim());                    }else{                        Element nameElement = element.element("name");                        System.out.println(nameElement.getName() + ":" + nameElement.getText());                        Element valueElement = element.element("value");                        System.out.println(valueElement.getName() + ":" + valueElement.getText());                        Element descriptElement = element.element("descript");                        System.out.println(descriptElement.getName() + ":" + descriptElement.getText());                        List<Element> subElementList = element.elements("module2");                        for (Element subElement : subElementList) {                            if(!subElement.getTextTrim().equals("")){                                System.out.println(subElement.getTextTrim());                            }else{                                Element subnameElement = subElement.element("name");                                System.out.println(subnameElement.getName() + ":" + subnameElement.getText());                                Element subvalueElement = subElement.element("value");                                System.out.println(subvalueElement.getName() + ":" + subvalueElement.getText());                                Element subdescriptElement = subElement.element("descript");                                System.out.println(subdescriptElement.getName() + ":" + subdescriptElement.getText());                            }                        }                    }                }            }        } catch (Exception e) {            e.printStackTrace();        }}    @Test    public void testXMLWrite(){        //DocumentHelper提供了创建Document对象的方法        Document document = DocumentHelper.createDocument();        //添加节点信息        Element rootElement = document.addElement("modules");        Element element0 = rootElement.addElement("module");        //这里可以继续添加子节点,也可以指定内容        element0.setText("这个是module标签的文本信息");        Element element = rootElement.addElement("module");        Element nameElement = element.addElement("name");        nameElement.setText("名称");        nameElement.addAttribute("language", "java");//为节点添加属性值        Element valueElement = element.addElement("value");        valueElement.setText("值");        valueElement.addAttribute("language", "c#");        Element descriptionElement = element.addElement("description");        descriptionElement.setText("描述");        descriptionElement.addAttribute("language", "sql server");        String xmlData = document.asXML();        System.out.println(xmlData); //将document文档对象直接转换成字符串输出//            将XML写入到文件中//            Writer fileWriter = new FileWriter("c:\\module.xml");//            //dom4j提供了专门写入文件的对象XMLWriter//            XMLWriter xmlWriter = new XMLWriter(fileWriter);//            xmlWriter.write(document);//            xmlWriter.flush();//            xmlWriter.close();        System.out.println("xml文档添加成功!");    }}

0 0
原创粉丝点击