ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XML简介

2021-09-08 21:00:09  阅读:199  来源: 互联网

标签:XML xml java 简介 DTD 3.1 解析 属性


1.1 XML 简介

定义: eXtensiable Markup Language

a) 可拓展标记语言, 是一种标记语言, 

b) xml是一种非常灵活的语言, 没有固定标签, 所有的标签都是自定义.

c) 通常被用于信息记录和传递. 因此, xml经常被用来作为配置文件.

<?xml version="1.0" encoding="UTF-8"?><!--xml声明版本和编码信息-->
<books>  <!--根元素-->

<!--图书信息-->   <!-注释--->
    <book id="bk101">  <!--属性-->
        <author>王珊</author>
        <title>.NET高级编程</title>
        <description>包含C#框架和网络编程</description>
<!--元素从一开始标签 元素内容和结束标签构成-->


    </book>

</book>

1.2 格式良好的xml

a) 声明信息, 用于描述xml的版本版本和编码方式.

<?xml version="1.0" encoding="UTF-8"?><!--xml声明版本和编码信息-->

b) xml有且仅有一个根元素.

c) xml中, 是大小写敏感的.

d) 标签是成对的, 而且要正确嵌套.

e) 属性值要加双引号

f) 注释写法

<!--注释-->

编辑器

作用

2. DTD

a) DTD, Document Type Definition, 文档类型定义

b) 用于约束xml的文档格式, 保证xml是一个有效的xml

c) DTD可以分为两种, 分别是内部DTD和外部DTD

2.2 使用DTD

a) 内部DTD定义语法如下, 

<!DOCTYPE 根元素 [元素声明]>

b) 元素声明语法:

<ELEMENT 元素名 [, 子元素...]>

c) 数量词

>+ : 表示出现1次或者多次, 至少1次.

>? : 表示出现0次或者1次.

>* : 表示出现任意次.

d) 属性声明语法

>属性类型: CDATA, 表示字符数据(character data)

>默认值:

        - #REQUIRED

        - #IMPILED

e) 带DTD的完整xml代码

<?xml version="1.0" encoding="UTF-8"?>
<!--  声明内部DTD -->
<!DOCTYPE score [
    <!ELEMENT scores (student*)>
    <!ELEMENT student (name, course, score)>
    <!ATTLIST student id CDATA #REQUIRED> <!-- IMPILED-->
    <!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>java</course>
        <score>99</score>
    </student>


</scores>

2.2.2 外部DTD的定义

a) 创建一个外部独立.dtd文件

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

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

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入外部DTD文件 -->
<!DOCTPE scores SYSTEM "scores.dtd">

<scores>
    <student id="1">
        <name>王彤</name>
        <course>java</course>
        <score>89</score>
    </student>

    <student id="2">
        <name>张三</name>
        <course>java</course>
        <score>99</score>
    </student>


</scores>

3. xml的解析

对xml文件进行操作, 包括床架 xml, 对xml文件进行操作

3.1.1 DOM 解析

是官方提供的解析方式, 基于xml树.

3.1.2 SAX解析

是民间的的解析方式, 基于时间的的解析.

3.1.3 JDOM解析

第三方提供, 开源的解析方式, 比DOM解析快.

3.1.4 DOM4J   4 for

第三方提供, 开源解析, 是JDOM的升级版, 主流使用.

DOM4J, 先去下载API 导入工程, 然后使用它.一般有两种操作, 创建xml或者操作xml, 配合java使用.包括和数据库配合使用, 在本地存储数据.

原理就是, 把xml文件转化成对象进行处理.

此外, xml和html并无差别, html其实就是已经被限制了元素类型和元素属性的xml.

标签:XML,xml,java,简介,DTD,3.1,解析,属性
来源: https://blog.csdn.net/weixin_45454852/article/details/120171618

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有