前言:“与其每天担心未来,不如努力现在。别对自己丧失信心,成长的路上,只有奋斗才能给你最大的安全感。”
你好,我是梦阳辰!下面和我一起学习XML吧!

01.XML概述

1.什么是XML?
XML (eXtensible Markup Language)指可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准

xml是一种非常灵活的语言,没有固定的标签,所有的标签都可以自定义。

2.XML的用途?
通常,xml被用于信息的记录和传递,因此xml经常被用于充当配置文件。

3.XML 仅仅是纯文本
XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。

不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。

4.xml的格式

//1.声明信息,用户描述xml的版本和编码方式
<?xml version="1.0" encoding="UTF-8?>
//2.根元素,有且仅有一个根元素
//3.xml大小写敏感
//4.标签成对,需要正确嵌套
//5.属性只要使用双引号
<book id="fa">
//注释的语法跟HTML相同

5.XML 不会替代 HTML,理解这一点很重要。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。
XML 无所不在。XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。
对 XML 最好的描述是:

XML 是独立于软件和硬件的信息传输工具。

6.XML 没有预定义的标签

在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 < p > 、< h1 > 等等)。

XML 允许创作者定义自己的标签和自己的文档结构。

练习:

<?xml version="1.0" encoding="UTF-8"?>
<scores><student id="1"><name>MengYangChen</name><course>xml</course><score>99</score></student><name>XingKong</name><course>xml</course><score>99.9</score><student id="2"></student>
</scores>

8.有效的XML文档
7.1 首先必须是格式良好的。
7.2 使用DTD和XSD(XML Schema)定义约束。

02.DTD

1.什么是DTD?
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
DTD(Document Type Defination )文档类型定义。
DTD用于约束xml的文档格式,保证xml是一个有效的xml。
2.DTD可以分为两种,内部DTD,外部DTD。

2.内部DTD的定义
假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

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

数量词
+: 表示出现1次或多次,至少一次。

?:表示出现0次或1次。

*: 表示出现任意次。

2.1.元素声明语法

<!ELEMENT 元素名称 (元素内容)>

2.2.属性声明语法
属性类型:CDATA,表示字符数据(character data)
默认值:REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的
#FIXED value 属性值是固定的

<!ATTLIST 元素名称 属性名称 属性类型 默认值>
如:<!ATTLIST payment type CDATA "check">
<?xml version="1.0" encoding="UTF-8"?>
<!--声明内部DTD-->
<!DOCTYPE scores[
<!ELEMENT scores (student)>
<!ELEMENT stuent(name,course,score)>
<!ATTLIST stuent id CDATA #IMPLIED>
<!ELEMENT  name (#PCDATA)>
]>
<scores><student id="1"><name>MengYangChen</name><course>xml</course><score>99</score></student><name>XingKong</name><course>xml</course><score>99.9</score><student id="2"></student>
</scores>

2.3 外部定义DTD
在xml中引入外部的DTD文件。

<!DOCTYPE scores SYSTEM "scores.dtd">

关于XSD
XML Schema是DTD的替代者。
不仅可以定义XML文档的结构,还可以规范文档的内容。

03.XML的解析

对xml文件进行操作,包括创建xml,对xml文件进行增删改查操作。

3.1 常见的xml解析技术

DOM解析
官方提供的解析方式(sun)
基于xml树解析。

SAX解析
是民间解析方式,基于事件的解析
适用于数据量较大的XML.

JDOM解析
开放源码,比DOM更快,使用类

DOM4J解析
第三方,开源免费,是JDOM的升级版,使用接口

3.2 DOM4J解析xml
解析xml的入口,是需要先拿到一个Document对象。
读取xml文件
1.导入dom4j.jar包
2.编写程序

dom4j创建xml

1.通过DocumentHelper生成一个Document对象。
Document doc =DocumentHelper.createDocument();

2.添加根元素
Element root = doc.addElement(“books”);

3.为根元素添加子元素
Element book =root.addElement(“book”);

4.为book元素添加属性(可以链式编程)
book.addAttribute(“id”,“bo1”);

5.为book添加子元素
Element name book.addElement=book.addElement(“name”);

6.为子元素添加文本
name.addText(“Think in Java”);

7.将doc输出到xml文件中即可
Writer writer = new FileWriter(new File(“src/book.xml”);
doc.write(writer);

或者用格式良好的输出(缩进)
OutputFormat format =OutputFormat.createPrettyPrint();

XMLWriter writer = new XMLWriter(new FileWriter(new File(“src/book.xml”);
8.关闭资源
writer.close();

我是梦阳辰,期待下次与你相遇!

关注公众号【轻松玩编程】回复关键字“电子书”,“计算机资源”,“Java从入门到进阶”,”JavaScript教程“,“算法”,“Python学习资源”,“人工智能”等即可获取学习资源。

XML入门教程(XML这样学)相关推荐

  1. XML入门教程(3)

    30.通过XSL显示XML XML.XML ---------------------------------------------------------- <?xml version=&q ...

  2. html显示xml xsl,XML入门教程:使用XSL显示XML

    通过使用XSL,您可以向XML文档添加显示信息. 使用XSL显示XML XSL是首选的XML样式表语言. XSL远比CSS更加完善.使用XSL的方法之一是在浏览器显示XML文件之前,先把它转换为HTM ...

  3. php laravel 入门教程,跟我学Laravel之快速入门

    安装 Laravel框架使用 Composer 执行安装和依赖管理.如果还没有安装的话,现在就开始 安装 Composer 吧. 安装Composer之后,你就可以通过命令行使用如下命令安装Larav ...

  4. XML简要教程(适合初学者)

    XML简要教程 XML 指可扩展标记语言(eXtensible Markup Language), 被设计用来传输和存储数据.是各种应用程序之间进行数据传输的最常用的工具. XML提供了一套夸平台,跨 ...

  5. python自学入门教程-Python学习教程(一)自学资源分享

    在我看来,基本上可以不负责任地认为,Python 可以做任何事情.无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发.桌面程序开发还是科学计算.图像处理,Python都可以胜任. 或许是 ...

  6. python入门教程非常详细-python初学者怎么入门:python入门教程非常详细

    python安装后如何打开 ,先找到python安装位置. python学习网,大量的免费python入门教程,在线学习! 进装目录之后,点击Lib文件夹. 相关推荐:<Python教程> ...

  7. python入门教程(非常详细)-python初学者怎么入门:python入门教程非常详细

    python安装后如何打开 ,先找到python安装位置. python学习网,大量的免费python入门教程,在线学习! 进装目录之后,点击Lib文件夹. 相关推荐:<Python教程> ...

  8. cad把图形切成两部分_CAD入门教程,最常用快捷键

    CAD是一款功能强大的绘图软件,如果把它学好了,找到的工作工资也是不会低的,但是从未接触过CAD的朋友想学习这个软件,一开始也是很困难的,但是想学就必须下苦工,因此小编为大家整理了CAD的入门教程,想 ...

  9. CAD软件入门教程,分享给零基础的人

    CAD是一款功能强大的绘图软件,如果把它学好了,以后工作工资也是不会低的,但是从未接触过的朋友想学习,应该从何学起呢? 因此小编为大家整理了CAD的入门教程,想学CAD的朋友一起看看吧! 一.了解CA ...

最新文章

  1. 关于爬虫异步请求心得
  2. 李宏毅机器学习作业2:Winner还是Losser(含训练数据)
  3. 什么是BNF EBNF 巴科斯范式及其扩展 BNF Augmented BNF
  4. PyTorch C++ API libtorch 简介
  5. c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别
  6. 面试官:连Spring三级缓存都答不好,自己走还是我送你?
  7. HOG特征中的三线插值法
  8. php时间函数单字母,ThinkPhp单字母函数
  9. curl txt批量_curl与wget高级用法
  10. sublime 如何使用less_Sublime Text3 使用教程
  11. mysql的批量更新的语法,MySql 批量更新语法
  12. 大数据体系【概念认知】系列-1:一致性 (未完)
  13. 控制台应用程序转成MFC程序错误—OcrRec.exe触发一个触点,原因可能是堆被破坏
  14. DataTable序列化为JSON字符串
  15. T410i升级i3 380M,上测试对比图,附拆机心得
  16. iOS获取DSYM文件
  17. 人人影视路由二代刷Breed
  18. java保护表格_java poi Excel单元格保护
  19. pkg-config
  20. os.path.dirname(os.path.realpath(__file__))函数

热门文章

  1. 图片批量下载并打包成zip
  2. 2020数据架构师面试题库
  3. 易语言支持库编写 第2卷
  4. vue 微信(企业微信)获取openId
  5. Pthreads并行编程之spin lock与mutex性能对比分析(转)
  6. python第七关再来一盘_盘一盘 Python 系列 7 - PyEcharts (v1.0)
  7. Unity_Shader(简易的卡通渲染)
  8. 李开复给大学生的第一封信---从诚信谈起
  9. 银行从业对证书的建议
  10. 【Amber】分子动力学结果分析(二)PMF