XML

常用描述数据的格式

properties:一种简单数据的格式,java特有的

xml:一种复杂数据的格式,各语言通用。描述清晰,格式复杂

json:一种复杂数据的格式,各语言通用。描述没有xml清晰,格式简单

XML

概念:可扩展标记语言,一种描述数据的格式

作用:1)方便存储复杂数据在文件2)方便在网络传输复杂数据

 

xml的语法

1)声明

<?xmlversion="1.0" encoding="GB2312" standalone="yes"?>

version:版本

encoding:当前xml文件编码字符集

standalone(可选):表示xml是否需要关联一个定义XML可用标记的文件(dtd,xsd..)。

2xml标记(描述数据)

语法:

开始标记:

<开始标记名    属性名1="属性值1" 属性名2="属性值2" ....>

【文本内容】或【子标记】

</结束标记名>

 

注意:

1xml语言严格区分大小写

2)开始标记名与结束标记名必须一致

3)标记名,属性名,命名和对应的数据一致

4)标记的数据存储:属性:短字符数据

                   文本内容:长字符数据

                   子标记:存储多个类似复杂数据

5xml的根标记只有一个

6)标记要正确嵌套

7)属性的值必须用(单或双)引号包裹

8)开始标记和结束标记之间如果没有内容--格式可以简化

语法:<开始标记名  属性名1="属性值1".../>

 

xml中特殊字符

字符        >       <       &       “      ‘

实体引用    &gt;    &lt;    &amp;   &quot;  &apos;

cdata标记:可以只能在标记中定义特殊的字符 <![CDATA[文本内容 ]]>

 

ax解析特点:

         1)基于事件模型,每次读取数据会调用对应的事件(方法)

         2)每次读取的数据不保存

         3)读取消耗的内存小

         4)解析数据-复杂

        

dom解析特点:

        1)直接把整个xml文件读取到程序中封装为一个Document对象, Document对象可以得到根标签Element,通过根标签Element,得到各种子标签

        2)每次读取的数据保存在document

        3)读取消耗的内存大

        4)解析数据-简单

 

domsax对比:

    1sax性能好,处理数据麻烦。

    2dom性能差,处理数据方便。

    3)因为一般处理的xml数据量小--实际开发都使用dom

   

    sax的解析

读取xml数据

  1)得到sax解析器工厂

  SAXParserFactory factory =SAXParserFactory.newInstance();

  2)通过工厂得到sax解析器

  SAXParser saxParser = factory.newSAXParser();

  3)通过sax解析器解析xml文件,并注册用于解析的处理器

   saxParser.parse(in,new Handler());

处理器:用于回调的对象,包含了很多处理xml数据的方法,当解析到xml数据的时候,会

调用处理器的对应处理方法

 

dom解析:

    读取xml数据

  1)得到dom解析器工厂

DocumentBuilderFactoryfactory =DocumentBuilderFactory.newInstance();

  2)通过工厂得到dam解析器

 DocumentBuilder builder = factory.newDocumentBuilder();

  3)通过dom解析器解析xml文件,得到对应文件的document对象。

  Document doc = builder.parse(in);

  4)通过document对象找xml的数据

API

1)获取document里跟标记

document.getDocumentElement();

2)通过指定的子标记名,找到所有的子标记

getElementsByTagName

返回值NodeList -》类似于List<Node>  Node是element的超类型

3)通过指定的属性名-获取属性值

getAttribute

4)找到所有的子标记

getChildNodes()

5)找到标记的文本内容

getTextContent

 

第三方的xml解析:

jdom,dom4j等,建立在domsax之上优化性能。

使用jdom的步骤

 1)让项目知道jdom的类的功能

-》给项目配置classpath(类的路径)

如果项目需要用到第三方jar的功能,那么需要把第三方jar配置到classpath

jar:压缩文件,包含了很多class文件..

eclipse配置classpath  选中项目-》右键-》buildpath-》config...

 

jdom解析xml

a)读取xml数据

入口api:org.jdom2.input包

1)创建解析器SAXBuilder

2)通过解析器解析xml文件得到对应文件的document对象。

3)通过document对象找xml的数据

常用api:

1)doc找根标记

getRootElement()

2ele找所有子标记

getChildren()

3ele找指定名字的子标记

getChild(java.lang.Stringcname)

4ele找指定属性名的值

getAttributeValue(java.lang.Stringattname)

5ele找文本内容

   getText()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值