JAVA对XML的读写

java对xml的读写

XML:

  1. 文件的类型声明:

    <?xml version="1.0" encoding="UTF-8"?>
  2. xml的作用:

    • 传输数据的格式
    • 存储数据
    • 做配置文件使用的
  3. xml内容:

    • 只有一个根节点
    • 标签"
    • 实体 >&gt <&lt 空格==&nbsp;
    • <CDATA[]>内容原样输出,不会做转仪;里面什么内容就什么内容,比如特殊符号。用于注释
      xml的读取:
    1. 使用的dom4j.jar包
  4. 操作步骤(读)

    • 把dom4j导入项目中
    • 创建实例
    • 寻找到文件
    • 获得documentd
    • 获得所有内容
    • 获得根节点
    • 获得根节点下的所有子子节点(这里是个集合)
    • 根据名字获得相应节点的的内容
  • 读具体操作
<?xml version="1.0" encoding="UTF-8"?>
<list>
    <emp empno="1001">
        <name>张三</name>
        <sex></sex>
        <age>23</age>
        <salary>1000</salary>
    </emp>
</list>
public static void main(String[] args) {
        //1、创建读取xml文件的类
        SAXReader saxReader = new SAXReader();
        //2、给定需要读取的文件xml
        File file = new File("E:\\ideaPerject\\student\\demo1105\\web\\stuxml.xml");
        if (!file.exists()){
          //  System.exit(0);结束程序
            System.out.println("文件不存在");
            return;//结束方法
        }
        try {
            //3、read方法的返回值表示的意思是将问价中所有的内容存到一个DOcument对象中
            Document doc = saxReader.read(file);
            //4、获得所有的元素
            Element rootElement = doc.getRootElement();
           // System.out.println(rootElement.asXML());
            //5、获得跟节点下的所有子节点
            //获得根节点下所有的emp子节点
            // List elements = rootElement.elements("emp")
            List<Element> elements = rootElement.elements();
            for (Element e: elements) {
                //获得节点上的属性值
                String empno = e.attributeValue("empno");
                System.out.println("属性值:"+empno);

                //6、根据节点获得对应的节点
                Element name = e.element("name");
                //7、获取节点名
                String name1 = name.getName();
                //8、获得节点的值
                String text = name.getText();
                String text1 = name.getTextTrim();
                System.out.println(name);
                System.out.println(name1);
                System.out.println(text);
            }

        } catch (DocumentException e) {
            e.printStackTrace();
        }

    }
  1. 写操作
  • 创建对象,对象需要传入两个参数,参数一为输出的位子,参数二位输出格式
  • 创建空白document
  • 创建根节点
  • 设置子节点
  • 设置子节点里面的标签。addtext是添加文本
  • 内容写出。直接调用write(document);
  • 具体操作:
    public static void main(String[] args) {
        try {
            //写出格式
            OutputFormat format = OutputFormat.createPrettyPrint();
            XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File("ha.xml")),format);
            //创建一个空白文档
            Document document = DocumentHelper.createDocument();
            //创建根节点
            Element rootElement = document.addElement("list");
            //设置子节点
            Element emp = rootElement.addElement("emp");
            //设置子节点里面的标签。addtext是添加文本
            emp.addElement("name").addText("姜明轩");
            emp.addElement("sex").addText("男");
            emp.addElement("address").addText("毕节");
            xmlWriter.write(document);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值