XML与DOM4J

来源:互联网 发布:经营数据分析报告 编辑:程序博客网 时间:2024/05/15 07:45

XML概述
XML:可扩展标记语言,初衷是为了替代html语言,定义了很规范的格式,但是没有达到了最初的期望,后来人们利用这个特点用作于 配置文件 封装数据 文件传输
与html主要区别:

xml区分大小写很敏感,html不区分
文档中有一个CDATA区,会按照纯文本解析

<?xml version="1.0" encoding="UTF-8"?><ConnectionAddress.xml>  <person1 id="i1">    <name>alice</name>    <phoneNumber class="c1">77--88-99</phoneNumber>  </person1>  <person2 id="i2">    <name>bob</name>    <phoneNumber class="c2">89--87-96</phoneNumber>  </person2>  <person3 id="i3">    <name>jack</name>    <phoneNumber class="c3">65--77--12</phoneNumber>  </person3></ConnectionAddress.xml>

dom4j的基本方法使用

//导入jar包
如图所示,选中jar包右键选中buildPath然后或出现“小奶瓶”
即配置成功
// 创建解析器对象
new SAXReader();
//读取写好的xml文件

SAXReader reader = new SAXReader();Document doc = reader.read(new FileInputStream(                    "ConnectionAddress"));

jar包中给我们提供了许多获取xml的方法

获取节点对象
Node node = doc.node(0);
只能获取一个子节点
获取所有的节点
Iterator iterator = doc.nodeIterator();
抽取方法获取所有的节点
getNodes(rootElement);

同理标签和属性一样都有类似方法

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class demo {    public static void main(String[] args) {        //导入jar包        // 创建解析器对象        SAXReader reader = new SAXReader();        try {            // 读取xml文件            Document doc = reader.read(new FileInputStream(                    "ConnectionAddress"));            // 获取根标签            Element rootElement = doc.getRootElement();            // 获取所有标签并打印            List<Element> list = rootElement.elements();            for (Element e : list) {                System.out.println(e.getName());            }            Iterator<Element> iterator2 = rootElement.elementIterator();            while(iterator2.hasNext()){                Element element = iterator2.next();                System.out.println(element.getName());            }            System.out.println("------------");            // 获取标签属性            Attribute attribute = rootElement.element("person1").attribute(0);            System.out.println(attribute.getName()+":"+attribute.getValue());            //或者通过集合            List<Attribute> list2 = rootElement.attributes();            for(Attribute a:list2){                System.out.println(a.getName()+":"+a.getValue());            }            //迭代器            Iterator<Attribute> iterator = rootElement.attributeIterator();            while(iterator.hasNext()){                 Attribute a2 = iterator.next();                System.out.println(a2.getName()+":"+a2.getValue());            }            //获取文本内容    getText() 或者 elementText()            String name1 = rootElement.element("person1").element("name").getText();            System.out.println(name1);            String name2 = rootElement.element("person2").elementText("name");            System.out.println(name2);        } catch (FileNotFoundException e) {            System.out.println("未找到文件");        } catch (DocumentException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }     }}
原创粉丝点击