XML语言

1.1 xml简介

  • a) xml,eXtensible Markup Language,可扩展标记语言.是一种标记语言.
  • b) xml 是一种非常灵活的语言,没有固定的标签,所有的标签都可以自定义.
  • c) 通常,xml 被用于信息的记录和传递. 因此,xml 经常被用于充当配置文件.

1.2 格式良好的xml

  • a) 声明信息,用于描述 xml 的版本和编码方式 <?xml version="1.0" encoding="UTF-8"?>
  • b) xml 有且仅有一个根元素
  • c) xml 是大小写敏感的
  • d) 标签是成对的,而且要正确嵌套
  • e) 属性值要使用双引号

例如: 

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 这里是注释 -->
 <books> 
    <book id="b01">
         <name>java高级编程</name>
         <author>张三</author> 
         <price>50.5</price>
     </book> 
    <book id="b02"> 
        <name>java中级编程</name> 
        <author>李四</author>
         <price>30.5</price> 
    </book> 
</books>                 

2. DTD
  2.1 DTD简介
    a) DTD,Document Type Definition,文档类型定义
    b) DTD 用于约束 xml 的文档格式,保证 xml 是一个有效的xml.
    c) DTD 可以分为两种,内部 DTD,外部 DTD
2.2 使用DTD 2.2.1 内部 DTD 的定义

a)语法如下:
  <!DOCTYPE 根元素 [元素声明]> b) 元素声明语法:
  <!ELEMENT 元素名 (子元素[,子元素...])> c) 数量词
  > +: 表示出现 1 次或多次,至少一次
  > ?: 表示出现 0 次或 1 次
  > *: 表示出现任意次
d) 属性声明语法:
  > 属性类型: CDATA,表示字符数据(character data)
  > 默认值:
  - #REQUIRED,表示必须出现
  - #IMPLIED,表示不是必须的
  <!ATTLIST 元素名称 属性名称 属性类型 默认值>
e) 带 DTD 的完整 xml 代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scores [ <!ELEMENT scores (student+)> 
<!ELEMENT student (name,course,score)>
<!ATTLIST student id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)> 
<!ELEMENT course (#PCDATA)> 
<!ELEMENT score (#PCDATA)> ]> 
<scores> 
    <student id="1"> 
         <name>王同</name> 
         <course>java</course>
         <score>89</score>
     </student> 
    <student id="2"> 
        <name>李佳</name> 
        <course>sql</course> 
        <score>58</score> 
    </student> 
</scores> 

2.2.2 外部DTD的定义
a) 创建一个独立的 dtd 文件

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT scores (student+)>
<!ELEMENT student (name,score)> 
<!ATTLIST student id CDATA #REQUIRED> 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT course (#PCDATA)> 
<!ELEMENT score (#PCDATA)> 

b) 在 xml 中引入外部 DTD 文件 

<!-- 引入外部DTD文件 --> 
<!DOCTYPE scores SYSTEM "scores.dtd"> 

3. XML的解析
对 xml 文件进行操作,包括创建 xml,对 xml 文件进行增删改查操作.
  3.1 常见的xml解析技术 3.1.1 DOM解析
    是官方提供的解析方式,基于 xml 树解析的
  3.1.2 SAX解析
    是民间的解析方式,基于事件的解析
  3.1.3 JDOM解析
    第三方提供,开源免费的解析方式,比 DOM 解析快
  3.1.4 DOM4J
    第三方提供,开源免费,是 JDOM 的升级版
  3.2 DOM4J解析XML
    需要导入 dom4j 的 jar 包,解析 xml 的入口,是需要先拿到一个 Document 对象
3.2.1 读取xml文件中的信息

分享图片

3.2.2 生成xml文件

 

分享图片

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念