Java---xml解析

来源:互联网 发布:盛发概预算软件 编辑:程序博客网 时间:2024/06/08 08:31

1.xml:可扩展性标记语言

1)概念:可扩展:标签名可以自定义

命名规范:不能纯数字(同Java),严格区分大小写

2)功能:用作配置文件和用作网络中的数据传输的载体:xml和Json

    Json:一般用于移动端,体积小

    xml:一般用于移动端

3)语法:新建文本文件,后缀名为.xml

组成:文档声明:<?xml version="1.0" encoding="UTF-8"?>

根标签:有且只有一个根标签

2.解析xml

<1>:解析思想1):Dom:文档对象类型.将文档的各个组成部分抽取为一个对象

element:标签对象   attribute:属性对象   text:文本属性   comment:注释属性   Node:节点属性    Document:文本对象

解析:将文档一次性加载进入内存,然后将文档各个组成抽取为对象

优点:可对文档进行增删改查---缺点:消耗内存,使用与PC端

解析思想2):SAX解析:基于事件逐行进行解析,一次读取一行,释放一行

优点:不占内存,适用于移动端---缺点:只能查,不可以增删改

<2>常见的xml解析器:Dom4J:第三方jar包,支持Dom思想

Pull解析器:第三方jar包,支持Sax思想

<3>Dom4J解析的步骤

1.导入Dem4Jjar包

2.写student.xml文件

3.创建解析器对象    Reader reader=new  SAXReader(new FileInputStream("student.xml"));

4.获取节点对象

 SAXReader reader = new SAXReader(); Document doc  = reader.read(new FileInputStream("student.xml"));
5.获取标签对象及其文本值
//读取文件SAXReader reader = new SAXReader();Document doc  = reader.read(new FileInputStream("sadc.xml"));//1.获取所有的节点Iterator<Node> nodes = doc.nodeIterator();while(nodes.hasNext()){Node next = nodes.next();System.out.println(next.getName());}//获取根节点Element root  = doc.getRootElement();//获取根节点的子标签root.element("标签名");//获取所有的子标签//方式1.List list = root.elements();//方式2:Iterator iteraor = root.elementIterator();//2.获取所有的属性对象Element stu = root.element("student");Attribute id = stu.attribute("属性名id");//获取属性的值String idValue = root.element("student").attributeValue("属性名id");//通过迭代的方式获取属性对象Iterator iterator = root.element("student").attributeIterator();//3.获取标签下的文本//方式1:此标签对象+getText()方法String name = root.element("student").element("name").getText();//方式2:上层标签+elementText()方法String name2 = root.element("student").elementText("name");



原创粉丝点击