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文件

 

分享图片

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇