电影
java读写文件(java读写xml文件)

1.读取xml文件

文件格式如下:

<?xml version="1.0" encoding="UTF-8" ?><!-- 注释:以上抬头声明必须放在第一行,必须有 --><!--  根标签只能有一个 --><users>    <user id="1" desc="第一个用户">        <name addr="龙岩">张无忌</name>        <sex>男</sex>        <地址>光明顶</地址>        <password>minmin</password>        <data> 3 < 2 && 5 > 4 </data>        <data1>            <![CDATA[                3 < 2 && 5 > 4            ]]>        </data1>    </user>    <people>很多人</people>    <user id="2">        <name>敏敏</name>        <sex>女</sex>        <地址>光明顶</地址>        <password>wuji</password>        <data> 3 < 2 && 5 > 4 </data>        <data1>            <![CDATA[                3 < 2 && 5 > 4            ]]>        </data1>    </user></users>


package com.itheima.d2_xml;import org.dom4j.Attribute;import org.dom4j.document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import java.io.File;import java.net.URL;import java.util.List;public class Dom4JTest1 {    public static void main(String[] args) throws Exception {// TestGetResource.java// 当前包名为:com.loc//获取当前class文件所在位置,以URL形式返回        URL url = Class.class.getClass().getResource("/");//输出:file:/D:/dev/workspace/AnyTest/bin/com/loc/        System.out.println(url);//去除file:前缀后剩下的部分:/D:/dev/workspace/AnyTest/bin/com/loc/        System.out.println(url.getPath());        // 1、创建一个Dom4J框架提供的解析器对象        SAXReader saxReader = new SAXReader();        // 2、使用saxReader对象把需要解析的XML文件读成一个document对象。        document document =                saxReader.read(url + "\\helloworld.xml" );        // 3、从文档对象中解析XML文件的全部数据了        Element root = document.getRootElement();        System.out.println(root.getName());        // 4、获取根元素下的全部一级子元素。        // List<Element> elements = root.elements();        List<Element> elements = root.elements("user");        for (Element element : elements) {            System.out.println(element.getName());						// 读取user节点的name节点,是否为空用null判断            Element elements2 = element.element("name");            System.out.println("elements2=" + elements2);                if (elements2.attributevalue("addr") != null) {                    System.out.println("addr=" + elements2.attributevalue("addr"));                } else if(elements2.attributevalue("addr") == null){                    System.out.println("addr2=" + elements2.attributevalue("addr"));            }        }        System.out.println("------------------");        // 5、获取当前元素下的某个子元素。        Element people = root.element("people");        System.out.println(people.getText());        // 如果下面有很多子元素user,默认获取第一个。        Element user = root.element("user");        System.out.println(user.elementText("name"));        // 6、获取元素的属性信息呢?        System.out.println(user.attributevalue("id"));        Attribute id = user.attribute("id");        System.out.println(id.getName());        System.out.println(id.getValue());        List<Attribute> attributes = user.attributes();        for (Attribute attribute : attributes) {            System.out.println(attribute.getName() + "=" + attribute.getValue());        }        // 7、如何获取全部的文本内容:获取当前元素下的子元素文本值        System.out.println(user.elementText("name"));        System.out.println(user.elementText("地址"));        System.out.println(user.elementTextTrim("地址")); // 取出文本去除前后空格        System.out.println(user.elementText("password"));        Element data = user.element("data");        System.out.println(data.getText());        System.out.println(data.getTextTrim()); // 取出文本去除前后空格    }}

2.写xml

package com.itheima.d2_xml;import java.io.BufferedWriter;import java.io.FileWriter;import java.net.URL;import java.net.URLDecoder;import static jdk.nashorn.internal.runtime.GlobalFunctions.decodeURI;public class Dom4JTest2 {    public static void main(String[] args) {        // 1、使用一个StringBuilder对象来拼接XML格式的数据。        StringBuilder sb = new StringBuilder();        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");        sb.append("<book>\r\n");        sb.append("\t<name " + " addr=\"" + "龙岩" + "\""  + ">").append("从入门到跑路").append("</name>\r\n");        sb.append("\t<author>").append("dlei").append("</author>\r\n");        sb.append("\t<price>").append(999.99).append("</price>\r\n");        sb.append("</book>");        URL url = Class.class.getClass().getResource("/");        System.out.println(URLDecoder.decode(url.getPath()));        try (                BufferedWriter bw = new BufferedWriter(new FileWriter(URLDecoder.decode(url.getPath()) + "\\book.xml"));                ){            bw.write(sb.toString());        } catch (Exception e) {            e.printStackTrace();        }    }}

输出xml文件如下

<?xml version="1.0" encoding="UTF-8" ?><book>   <name  addr="龙岩">从入门到跑路</name>   <author>dlei</author>   <price>999.99</price></book>

顶一下()     踩一下()

热门推荐

发表评论
0评