XMl 简介



XML
一、什么是XML
Xml的全称为Extensiable Markup Language,意思是可扩展的标记语言。XMl的语法上和HTML比较相似,但是html标签都是规定好了的,而XML是可以随意定义标签的。
二、XML的常见用法
用法一:存放配置文件

用法二:存储数据
很多应用程序会使用xml个来存放数据,比如我们用过的powerdesiner。
用法三:传输数据
我们知道使用不同语言开发程序之间是不能够直接交流的,我们需要介入一种约定的协议来完成不同系统之间的交互。一直比较主流的就是通过发布webservice的方式来暴露自己的本系统的功能。外部程序可以使用别的程序暴露的webservice来访问。那么webservice使用的是soap协议,相互之间传递的数据就是XML格式的文档数据。
 
三、XML的语法
①头部声明XML文档(必须的)
<?xml version="1.0" encoding="UTF-8" language=”java”?>
文档必须以<?xml  ...  ?>开始,并且必须放到文档的开头。不允许出现任何其他的干扰字符。文档声明部分只有三个属性:version,encoding,language,注意其中version是必须的。
 
四、Dom4J解析XMl文档
XML的文档结构理解
XML可以从根节点开始,一层一层的抓出一颗树形的节点结构。我们称之为DOM树。
 
简介
当数据被存在xml文件后,如果我们想要用到里面的数据需要通过程序获取文件内容,解析出我们想要的数据,如果使用我们目前所学习的知识,我们只能使用IO流来完成读取文件,然后通过一些复杂的判断来获取文档里面的数据。这样的常用的文档格式,一定会有一些懒人来封装一些方便的工具。那么针对XML文档我们有DOM4J,sax这个工具包来帮助我们从复杂的XML文档解析中解脱出来。
Dom解析器方式
我们介绍两种dom解析器,dom4j 解析器和SAX解析器。
Dom4j会把所有文档一次性的读取到内存里,形成一个完整的DOCUMENT对象。
优点:元素之间有结构关系,可以进行节点的增删改查。
缺点:文档过大时候内存容易溢出。
SAX:一边读一边解析,逐行扫描文档,读一行解析一行,并以事件驱动的方式进行解析,这种方式速度快,但是只能对文档进行读取,不能修改节点信息。
 
常用API
//定义一个SAXReader 用于将文档读取到内存中
        SAXReader saxReader = new SAXReader();
        //读取XMl文档组装成文档Document
        Document doc = saxReader.read(is);
//获取根节点
Element rootElement = doc.getRootElement();
    //获取节点的标签名(tagname)
        String typeName = rootElement.getName();  
 
//获取当前节点的所有子节点
        List<Element> list = rootElement.elements();
//根据标签名获取一个子节点
        Element defaultConfigEle = rootElement.element("default-config");
//读取属性
            String propertyName = ele.attributeValue("name");
//读取节点文本内容
            String propertyValue = ele.getText(); 
 
//另一种方式读取节点内容
        String targetEleText = defaultConfigEle.elementText("tebiede");
 
 
Xml除了存储数据配置文件以外还经常被我们用来存javabean和数据字段之间的关系,当查询数据库时候我们可以根据xml文档来将查询到的结果节方便的翻译成java对象。
将我们的select查询来用xml文档来简化字段对应。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值