3.XML的语法及应用

  1. Xml

    可扩展标记语言 Extensible Markup Language

   可以用简单标记的描述数据。

  1. XML优势和作用

   优势: 跨平台、可扩展性、可读性、简单、内容和形式分离。

   作用: 配置文件存储数据、数据交换

  1.  XML文件组成

   1.1 xml 头信息:声明版本和编码

      <?xml version="1.0" encoding="UTF-8"?>

   1.2 xml 标签元素

      <标签名  属性名=”值”> 内容 </标签名>

      xml标签名可以自定义

  1. 格式良好xml遵循的规则

   1. Xml声明必须放在第一行。

   2.根元素标签有且只能有一个。

   3.标签必须成对出现。

   4.严格区分大小写。

   5.属性值必须用””引起来

   6.标签必须正确嵌套

   编写一个存储学生信息的students.xml

<?xml version="1.0" encoding="UTF-8" ?>

<students>

  <student sno="1001">

    <name>小博</name>

    <age>18</age>

    <sex>男</sex>

  </student>

  <student sno="1002">

     <name>马总</name>

     <age>28</age>

     <sex>女</sex>

  </student>

</students>

  注意:students.xml只是一个格式良好xml,但不是一个有效xml.

      有效:xml只能存放student有关的一些标签

  1. 有效xml文件

   1. 格式良好

   2. 使用DTDXSD 添加语义约束

  1. DTD  文档类型定义

  作用:给xml添加约束,保证xml格式正确性

  1. 内部DTD语法

<!DOCTYPE  根元素[

   //元素中包含子元素  +:1~n   ?:0~1  *:0~n

   <!ELEMENT 元素(子元素+?*,子元素...)>

   //元素中包含属性 ,CDATA:字符串类型   #REQUIRED:必须的 

   <!ATTLIST 元素 属性名 CDATA  #REQUIRED>

   //元素中包含内容

   <!ELEMENT 元素 (#PCDATA)>

]>

  2. 外部DTD

     1. 创建dtd文件,编写约束

   //元素中包含子元素

   <!ELEMENT 元素(子元素+?*,子元素...)>

   //元素中包含属性 ,CDATA:字符串类型   #REQUIRED:必须的 

   <!ATTLIST 元素 属性名 CDATA  #REQUIRED>

   //元素中包含内容

   <!ELEMENT 元素 (#PCDATA)>

2. DTD文件引入到xml中

     <!DOCTYPE 根元素  SYSTEM ‘xxx.DTD’>

  1. XML解析

解析技术                                                   特点
DOM                     基于XML树结构比较耗资源适用于多次访问XML
 SAX                     基于事件 消耗资源小适用于数据量较大的XML
 JDOM                  开放源代码比DOM更快JDOM仅使用具体类而不使用接口
 DOM4J                非常优秀的Java XMLAPI,性能优异、功能强大使用接口而不是实现类

                             前两种属于基础方法,是官方提供的平台无关的解析方式

                             后两种属于扩展方法,是在基础方法上扩展出来的,只适用Java平台


 

  1. DOM4J方式解析XML文件

   1. 引入dom4j.jar

      dom4j-1.6.1.jar

   2. 创建解析器对象SaxReader

     SAXReader sr=new SAXReader();

   3. 读取xml文件,解析成DOM

      Document doc=sr.read("students.xml");

   4. 获取根元素

      Element root=doc.getRootElement();

   5. 元素常用的方法

方法名

描述

getName()

获取元素的名称

elements()

获取所有的子元素

element(String name)

获取指定的子元素

attributeValue(String name)

获取元素指定的属性值

elementText(String name)

获取子元素的文本值

addElement()

添加子元素

addAttribute()

添加属性

addText()

添加文本

  1. 修改xml文件,重新Document对象写到xml

OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter xw=new XMLWriter(new FileOutputStream("students.xml"),format);
xw.write(doc);
xw.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值