概述
版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/89137630
文章目录
- 一、XML 与 HTML 区别
- 二、简单的 XML实例
- 三、XML命名规则
- 四、XML语法规则
- 五、XML文档声明(必须放在第一行)
- 六、XML元素
- 七、XML实体(预定义实体只能以下五种)
- 八、XML注释
- 九、使用 CSS 格式化 XML文档
- 十、XML解析器
- 1、PCDATA:
- 2、CDATA:
- 十一、XML的解析方式
- 1、DOM(Document Object Model,文档对象模型)
- 2、SAX(Simple API for Xml):
- 3、JAXP
- 4、DOM4J
- 5、JDOM
- 十二、DOM4J 解析与生成
- 1、JAVA程序 使用DOM4J 解析 XML文件
- 2、JAVA程序 使用DOM4J 生成 XML文件
- 十三、XPath的使用
- 1、需要添加Jar包依赖
- 2、解析代码与DOM4J一样,只是定位路径的写法不同
- 3、XPath小实例
- ① 实例1
- ② 实例2
- ③ 实例3
- ④ 实例4
- ⑤ 实例5
- 十四、XML约束
- 1、DTD约束
- 2、Schema约束
XML(Xtendsible Markup Language, 可扩展标记语言)
主要作用: 传输数据、做配置文件。
标签没有被预定义,需要自行定义标签。它是W3C推荐的标准,以 “.xml” 为扩展名。
一、XML 与 HTML 区别
XML 是用来传输和存储数据的,其焦点是数据的内容
HTML 是用来显示数据,其焦点是数据的外观
XML 传输信息,HTML 显示信息。
XML 不是对 HTML 的替代,是对 HTML 的补充。
二、简单的 XML实例
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<test>
<demo>Hello XML! </demo>
</test>
三、XML命名规则
1、数字、字母、下划线;
2、不能以数字开始;
3、不能以 字母 xml 开始;
4、不能含有空格。
四、XML语法规则
1、XML文档 必须有一个根元素;
2、XML元素 都必须有一个关闭标签;
3、XML标签 对大小写敏感;
4、XML元素 必须被正确的嵌套;
5、XML属性值 必须加引号。
五、XML文档声明(必须放在第一行)
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
version: 解析XML的版本
encoding: 解析XML文字的编码格式
**standalone: ** 该xml是不是独立的,有以下两个值:
值1–> no: 该文档会依赖关联其他文档,可以引用外部的DTD约束文档。
值2–> yes: 这是一个独立的文档,不能引用外部的DTD约束文件。
注: 属性的顺序不能放错
六、XML元素
里面只包含了普通文字的叫简单元素,里面嵌套了其他元素的叫复杂元素。
如:
<book id="1">一本书</book>
<age value="10" />
七、XML实体(预定义实体只能以下五种)
<
: <
>
: >
&
: &
'
: ’
"
: "
自定义实体(相当于常量,在文档声明的下方写):
格式:
<!DOCTYPE 根元素名称[
<!ENTITY 实体名 实体内容>
]>
例子:
<!DOCTYPE root[
<!ENTITY aa "这是什么">
<!ENTITY bb "这是bb">
]>
<root>
...&aa;....
......&bb;.....
</root>
浏览器解析后:将 “&aa;” 解析成 “这是什么”,“&bb;” 解析成 “这是bb”。
八、XML注释
<!-- 注释内容 -->
Eclipse中xml的注释快捷键:
注释: CTRL + SHIFT + /
撤销注释: CTRL + SHIFT +
九、使用 CSS 格式化 XML文档
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="index.css"?>
<test>
<demo>Hello XML! </demo>
</test>
十、XML解析器
1、PCDATA:
会被浏览器解析,是 XML解析器解析文本数据使用的一个术语。
2、CDATA:
不会被浏览器解析,原样输出。
格式:
<![CDATA[
不被浏览器解析的内容
]]>
例子:
<![CDATA[
<a href="http://www.baidu.com">不用被浏览器解析,可以原样输出</a>
]]>
十一、XML的解析方式
1、DOM(Document Object Model,文档对象模型)
JDK内置解析方式,原理是把整个XML全部读到内存中,形成树状结构。整个文档称之为Document对象,属性对应Attribute对象,所有的元素节点对应Element对象,文本也可以称之为Text对象,以上所有对象都可以称之为Node节点。如果XML特别大,那么将会造成内存溢出。可以对文档进行增删操作。
2、SAX(Simple API for Xml):
基本事件驱动,是JDK内置解析方式,原理是读取一行,解析一行。不会造成内存溢出。不可以进行增删,只能查询。
3、JAXP
sun公司的,使用起来比较繁琐。
4、DOM4J
与JDOM同属一个机构,DOM4J使用起来比较广泛。
5、JDOM
十二、DOM4J 解析与生成
1、JAVA程序 使用DOM4J 解析 XML文件
// 1)创建 SAXReader对象
SAXReader reader = new SAXReader();
// 2)读取要解析的 xml文件
Document document = reader.read(new File(filePath));
// 3)获得根节点
Element rootElement = document.getRootElement();
// 4)获得 根节点 下的所有子节点
List<Element> elements = rootElement.elements();
// 获取 根节点 下指定的子节点
// Element element = rootElement.element("stu");
// 遍历 userList 集合,拿到每个子节点
for (Element e : elements) {
// 获得元素的文本
e.getText();
// 获得元素的节点名
e.getName();
// 获得元素中所有属性
List<Attribute> attrs = e.attributes();
// 遍历 属性
for (Attribute attr : attrs) {
// 获取属性名
attr.getName();
// 获取属性值
attr.getValue();
}
}
2、JAVA程序 使用DOM4J 生成 XML文件
// 1)创建文档对象
Document document = DocumentHelper.createDocument();
// 2)添加根元素
Element users = document.addElement("users");
// 根元素下添加子元素
Element user = users.addElement("user");
// user 元素下面添加子元素及其文本值
Element name = user.addElement("name");
name.addText(nameStr);
// 3)生成 XML 文件
// 创建格式化输出流
OutputFormat format = OutputFormat.createPrettyPrint();
// 创建XML输出流
XMLWriter xw=new XMLWriter(new FileOutputStream(new File(file)),format);
// 写入文档
xw.write(document);
xw.flush();
xw.close();
十三、XPath的使用
XPath是XML中的路径语言,它有着自己的语法规则。在DOM4J中支持XPath语法,在DOM4J中使用XPath,可以快速定位到具体的某一个元素。
1、需要添加Jar包依赖
jaxen-1.1-beta-6.jar
(Jar包下载地址:https://download.csdn.net/download/sun8112133/11099281)
2、解析代码与DOM4J一样,只是定位路径的写法不同
如:
// 获取第一个name元素
Element nameElement = (Element) rootElement.selectSingleNode("//name");
System.out.println(nameElement.getText());
// 获取文档里面的所有name元素
List<Element> elements = rootElement.selectNodes("//name");
for (Element e : elements) {
System.out.println(e.getText());
}
注: 以上代码中的 //name
用的就是 XPath语法
3、XPath小实例
① 实例1
② 实例2
③ 实例3
④ 实例4
⑤ 实例5
十四、XML约束
XML约束是为了定义 XML文档的合法性,自己去规范XML文档的合法性。
1、DTD约束
文档类型定义,它的语法自成一派,早起就出现了。但可读性比较差。
2、Schema约束
它其实就是一个XML,使用XMl的语法规则,XML的解析器解析起来比较方便,其目的是为了替代DTD。但是Schema约束文本内容比DTD的内容还要多。所以目前也没有真正意义上的替代DTD。
最后
以上就是自由钢笔为你收集整理的【总结篇】XML总结一、XML 与 HTML 区别二、简单的 XML实例三、XML命名规则四、XML语法规则五、XML文档声明(必须放在第一行)六、XML元素七、XML实体(预定义实体只能以下五种)八、XML注释九、使用 CSS 格式化 XML文档十、XML解析器十一、XML的解析方式十二、DOM4J 解析与生成十三、XPath的使用十四、XML约束的全部内容,希望文章能够帮你解决【总结篇】XML总结一、XML 与 HTML 区别二、简单的 XML实例三、XML命名规则四、XML语法规则五、XML文档声明(必须放在第一行)六、XML元素七、XML实体(预定义实体只能以下五种)八、XML注释九、使用 CSS 格式化 XML文档十、XML解析器十一、XML的解析方式十二、DOM4J 解析与生成十三、XPath的使用十四、XML约束所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复