XML的应用

1.XML的定义:

XML 于 1998 年 2 月 10 日成为 W3C 的推荐标准。xml一般指可扩展标记语言,可扩展标记语言是一种很像超文本标记语言的标记语言。它的设计宗旨是传输数据,而不是显示数据。

2.通过XML我们可以自定义自己的标签,如:

 

<mail><from>tom</from><to>lily</to><detail>I will go home this weekend!</detail>
</mail>

3.XML结构

XML是一种树结构。树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。XML文档必须包含根元素,该元素是所有其他元素的父元素。XML文档中的元素形成了一棵文档树,这棵树从根部开始,并扩展到树的最底端。

4.XML语法规则

XML声明,如:<?xml version="1.0" encoding="utf-8"?>

它定义XML的版本(1.0)和所使用的编码(utf-8)字符集。

  1. 所有的XML元素都是成对出现的,有一个开始标签,就必须有一个关闭标签。
  2. XML标签对大小写敏感,标签与标签是不同的。
  3. XML文档必须有根元素,标签如果需要嵌套,必须正确嵌套,在内层打开的标签就必须在内层关闭。
  4. XML标签如果需要添加属性,属性值必须加引号。
  5. 在XML中编写注释的语法与HTML的语法很相似,都是。
  6. 在XML中,空格会被保留,不像HTML中,加再多的空格最终都只合并为一个。 

                                    特殊符号:

引用符号说明
&lt;<小于
&gt;>大于
&amp;&and符号
&apos;'单引号
&quot;"双引号

 

 

5.XML命名规则

 

XML元素必须遵循以下命名规则:

 

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格
  • 可使用任何名称,没有保留的字词。

6.创建XML文件

/**
* 创建XML文件
* 
* @throws IOException
*/
public void createXml() throws IOException {
// 创建Document对象
Document document = DocumentHelper.createDocument();
// 根元素节点
Element root = document.addElement("students");
root.addComment("all students info"); // 添加注释
Element student = root.addElement("student"); // 根元素节点添加子节点
student.addAttribute("id", "001"); // 添加节点属性
Element name = student.addElement("name");
name.addText("July"); // 设置节点文本
Element age = student.addElement("age");
age.addText("18");
// 设置XML美化格式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8"); // 编码字符集设置
// xml写入器
XMLWriter writer = new XMLWriter(new FileWriter("students.xml"), format);
// 写操作
writer.write(document);
writer.flush();
writer.close();
}

7:DTD的概念:

DTD(文档类型定义)的作用是定义XML文档的合法构建模块。拥有正确语法的XML被称为“形式良好”的XML,我们可以通过DTD验证XML是“合法”的 XML。

8.DTD元素

<!ELEMENT 元素名称 类别>

只有 PCDATA 的元素

只有 PCDATA 的元素通过圆括号中的#PCDATA进行声明:

<!ELEMENT 元素名称 (#PCDATA)>

示例:

<!ELEMENT from (#PCDATA)>

带有任何内容的元素

通过类别关键词ANY声明的元素,可包含任何可解析数据的组合:

<!ELEMENT 元素名称 ANY>

示例:

<!ELEMENT mail ANY>

带有子元素(序列)的元素

带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:

<!ELEMENT 元素名称 (子元素名称 1)>

或者

<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>

示例:

<!ELEMENT mail (from,to,detail)>

8.DTD属性

声明属性

属性声明使用下列语法:

<!ATTLIST 元素名称 属性名称 属性类型 默认值>
9.CDATA与PCDATA
 

XML文档中的所有文本均会被解析器解析,只有CDATA区段中的文本会被解析器忽略。

10.外部文档声明
这是包含DTD的“mail.dtd”文件:<!ELEMENT mail (from,to,detail)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT detail (#PCDATA)>
XML文件:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mail SYSTEM "mail.dtd">   
<mail><from>tom</from><to>lily</to><detail>I will go home this weekend!</detail>
</mail>

11.内部文档声明

 

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

 

假如DTD被包含在XML源文件中,它应当通过下面的语法包装在一个DOCTYPE声明中:<!DOCTYPE root-element [element-declarations]>
如:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mail[
<!ELEMENT mail (from,to,detail)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT detail (#PCDATA)>
]>  
<mail><from>tom</from><to>lily</to><detail>I will go home this

 

 

 

 

 

转载于:https://www.cnblogs.com/g398429959/p/4491464.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机VMware里 windows server 2003 扩充C盘方法

你会经常用windows server 2003 吗&#xff1f;应该不会吧&#xff0c;有时一些东西必须装在windows server 2003 上才能用&#xff0c;所以 用虚拟机把&#xff0c;好&#xff0c;装在虚拟机上&#xff0c;8G的C盘够你用吗&#xff0c;一个稍微大点的软件就可能就没空间来存储…

从运维角度浅谈MySQL数据库优化

一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的&#xff0c;它是随着用户量的增加&#xff0c;基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案&#xff0c;暂且抛开前端应用不说&#xff0c;大致分为以下五个阶段&#x…

c语言c99标准_自学C语言之一

上次自学C语言还是在刚开学到国庆期间&#xff0c;听学姐的建议买了本C语言的书&#xff0c;在军训期间的晚上翻翻看看。后来选课、开始正式上课、面试社团、开各种会等等&#xff0c;好像每天都有许多事要忙&#xff0c;但又没忙出来什么结果&#xff0c;慢慢地好像就把C语言放…

boost解析info文件

先给出info文件&#xff1a; parameters {MAX_STAGES 4MAX_DEPTH 3MAX_NUMTRESS 5MAX_NUMTHRESHS 500MAX_NUMFEATS 1000,1000,1000,500,500,500,400,400MAX_RATIO_RADIUS 0.3,0.2,0.2,0.15,0.12,0.10,0.08,0.06,0.06,0.05BAGGING_OVERLAP 0.4IS_FLIP true }meanface {MAX_ITER…

Font Rending 的 Hint 机制对排版的影响

Font Rending 的 Hint 机制对排版的影响【转】 在设计一种 Font 时&#xff0c;设计者使用的是一个抽象的单位&#xff0c;叫做 EM&#xff0c;来源于大写 M 的宽度&#xff08;通常英文字体中大写 M 的宽度最大&#xff09;。EM 即不同于在屏幕显示时用的像素&#xff08;Pixe…

《SQL初学者指南(第2版)》——2.4 指定列

本节书摘来自异步社区出版社《SQL初学者指南&#xff08;第2版&#xff09;》一书中的第2章&#xff0c;第2.4节&#xff0c;作者&#xff1a;【美】Larry Rockoff&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.4 指定列 到目前为止&#xff0c;我们只…

python从文件中提取特定文本_使用Python从HTML文件中提取文本

我发现最好的一段代码用于提取文本&#xff0c;而不需要javascript或不需要的东西&#xff1a;import urllibfrom bs4 import BeautifulSoupurl "http://news.bbc.co.uk/2/hi/health/2284783.stm"html urllib.urlopen(url).read()soup BeautifulSoup(html)# kill …

mutable、volatile的使用

本文转载自http://blog.csdn.net/tht2009/article/details/6920511 (1)mutable 在C中&#xff0c;mutable是为了突破const的限制而设置的。被mutable修饰的变量&#xff0c;将永远处于可变的状态&#xff0c;即使在一个const函数中&#xff0c;甚至结构体变量或者类对象为const…

文本框点击后文字消失总结

1.文本框显示默认文字&#xff1a; <textarea>白鸽男孩</textarea> <textarea>白鸽男孩</textarea>    2.鼠标点击文本框&#xff0c;默认文字消失&#xff1a; <textarea οnfοcus”if(value’白鸽男孩’) {value’ ‘}”>白鸽男孩</text…

[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.8

需要全部的解答, 请 http://www.cnblogs.com/zhangzujin/p/3527416.html 设 $f(x)$ 在 $[a,\infty)$ 上可微; 且 $x\to\infty$ 时, $f(x)$ 单调递增趋于 $\infty$, 则 $$\bex \int_a^\infty \sin f(x)\rd x,\quad \int_a^\infty \cos f(x)\rd x \eex$$ 都收敛. 证明: 由 $$\be…

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.13 创建视图...

本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章&#xff0c;第2.13节&#xff0c;作者&#xff1a;【加拿大】Donabel Santos&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.13 创建视图 本方案展…

python刷抖音_用Python生成抖音字符视频!

抖音字符视频在去年火过一段时间。 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波&#xff0c;做一个字符视频出来。 主要用到的库有cv2&#xff0c;pillow库。 原视频如下&#xff0c;直接抖音下载的&#xff0c;妥妥的水印。 不过并不影响本次的操作。 / …

变长参数

转载自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 变长参数 设计一个参数个数可变、参数类型不定的函数是可能的&#xff0c;最常见的例子是printf函数、scanf函数和高级语言的Format函数。在C/C中&#xff0c;为了通知编译器函数的参数个数和类型可变…

第十七章 我国农业科学技术

农村改革解说&#xff08;专著&#xff09;第十七章 第十七章 我国农业科学技术 1、为什么说科学技术是生产力&#xff1f; 我们说科学技术是生产力&#xff0c;是因为在构成生产力的两个主要因素中&#xff0c;都包含着科学技术在内。 A、生产力中人的因素是同一定的科学技术紧…

《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.2 选购镜头时应注意的事项...

本节书摘来自异步社区出版社《淘宝网开店 拍摄 修图 设计 装修 实战150招》一书中的第1章&#xff0c;第1.2节&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 选购镜头时应注意的事项 面对如此之多的镜头&#xf…

OpenCV中的神器Image Watch

Image Watch是在VS2012上使用的一款OpenCV工具&#xff0c;能够实时显示图像和矩阵Mat的内容&#xff0c;跟Matlab很像&#xff0c;方便程序调试&#xff0c;相当好用。跟VS2012配合使用&#xff0c;简直就是一款神器&#xff01;让我一下就爱上它了&#xff01; 下面介绍一些链…

python异步_Python通过Thread实现异步

当long函数耗时较长时&#xff0c;需要程序先向下执行&#xff0c;这就需要异步&#xff0c;改写代码如下&#xff1a; import _thread import time def long(cb): print (long execute) def fun(callback): time.sleep(5) result long end callback(result) _thread.start_ne…

SAM4E单片机之旅——13、LCD之ASF初步

在Atmel Studio 6中&#xff0c;集成了Atmel Software Framework&#xff08;ASF框架&#xff09;。通过它提供的库&#xff0c;可以很快速地完成新的项目。 这次的最终目标使用ASF在LCD上显示出文字“Hello World!”&#xff0c;现阶段目标是点亮LCD的背光&#xff0c;学习目标…

《HTML5与CSS3实战指南》——2.2 基本的HTML5模板

本节书摘来自异步社区《HTML5与CSS3实战指南》一书中的第2章&#xff0c;第2.2节,作者&#xff1a; 【美】Estelle Weyl , Louis Lazaris , Alexis Goldstein 更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.2 基本的HTML5模板 在您学习HTML5和新技术时&#xff0c;您…

c# Message const

typeTMsg packed recordhwnd: HWND; //窗口句柄message: UINT;//消息常量标识符wParam: WPARAM ;// 32位消息的特定附加信息lParam: LPARAM ;// 32位消息的特定附加信息time: DWORD;//消息创建时的时间pt: TPoint; //消息创建时的鼠标位置end ; 消息中有什么&#xff1f;是否觉…