XML语言

前端之家收集整理的这篇文章主要介绍了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) 属性值要使用双引号

例如: 

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

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 代码:

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

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

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

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

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

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

 

分享图片

猜你在找的XML相关文章