xml
Posted ahjava
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml相关的知识,希望对你有一定的参考价值。
Xml:
eXtendsible markup language 可扩展的标记语言
XML 有什么用?
1. 可以用来保存数据
2. 可以用来做配置文件
3. 数据传输载体
定义xml
> 其实就是一个文件,文件的后缀为 .xml
文档声明
简单声明, version : 解析这个xml的时候,使用什么版本的解析器解析
<?xml version="1.0" ?>
encoding : 解析xml中的文字的时候,使用什么编码来翻译
<?xml version="1.0" encoding="gbk" ?>
standalone : no - 该文档会依赖关联其他文档 , yes-- 这是一个独立的文档
<?xml version="1.0" encoding="gbk" standalone="no" ?>
encoding详解
> 在解析这个xml的时候,使用什么编码去解析。 ---解码。
文字, 而是存储这些文字对应的二进制 。 那么这些文字对应的二进制到底是多少呢? 根据文件使用的编码 来得到。
默认文件保存的时候,使用的是GBK的编码保存。
所以要想让我们的xml能够正常的显示中文,有两种解决办法
1. 让encoding也是GBK 或者 gb2312 .
2. 如果encoding是 utf-8 , 那么保存文件的时候也必须使用utf-8
3. 保存的时候见到的ANSI 对应的其实是我们的本地编码 GBK。
为了通用,建议使用UTF-8编码保存,以及encoding 都是 utf-8
xml标签:
与html一样使用< >来创建:
元素是可以自定义的例如:
<?xml version="1.0" encoding="UTF-8"?> <stu> <name>刘海清</name> <sex>男</sex> <age>18</age> <telephone>17679072513</telephone> </stu>
定义了一个stu标签里面嵌套了name-----sex----age----telephone---
元素的第一个标签为跟标签
XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
命名尽量简单,做到见名知义
简单元素与复杂元素:
简单元素里面只有文字
<?xml version="1.0" encoding="UTF-8"?>
<stu>
<name>刘海清</name>
<sex>男</sex>
<age>18</age>
<telephone>17679072513</telephone>
</stu>
复杂元素里面嵌套其他元素:
<?xml version="1.0" encoding="UTF-8"?>
<stu>
<name>刘海清</name>
<sex>男</sex>
<age>18</age>
<telephone>17679072513</telephone>
</stu>
加入属性:
<?xml version="1.0" encoding="UTF-8"?> <stus> <stu id="1"> <!-- 加入id属性 --> <name>刘海清</name> <age>18</age> </stu> </stus>
xml注释:
与html的注释一样。
<!-- -->
如:
<?xml version="1.0" encoding="UTF-8"?>
<!--
//这里有两个学生
//一个学生,名字叫张三, 年龄18岁, 学号:10086
//另外一个学生叫李四 。。。
-->
xml的注释,不允许放置在文档的第一行。 必须在文档声明下面
在 XML 中,有 5 个预定义的实体引用:
< | < | |
> | > | |
& | & | |
' | ‘ | |
&quat; | " |
CDATA:
如果内容过多里面有包含关键字或者是标签符号的可以使用CDATA
[DATA[里面为内容]]
<?xml version="1.0"?> <des><![CDATA[<a href="http://www.baidu">百度</a>]]></des>
Xml解析:
其实就是获得xml中的字符串或者是属性值
XML解析方式(面试常问)
有很多种,但是常用的有两种。
DOM
SAX
针对这两种解析方式的API
一些组织或者公司, 针对以上两种解析方式, 给出的解决方案有哪些?
jaxp sun公司。 比较繁琐
jdom
dom4j 使用比较广泛
Dom4j的用法:
需要先导入Dom4j包
接下来写代码:
package com.itheima.xml; import java.io.File; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Mian { public static void main(String[] args) throws DocumentException { // TODO Auto-generated method stub SAXReader reader = new SAXReader(); //创建SAXReader对象 Document document = reader.read(new File("src/demo.xml")); //加载xml, Element element = document.getRootElement(); //获得跟标签 List<Element> list=element.elements(); //获得跟标签下的所有element for (Element element2 : list) { //遍历 System.out.println(element2.getText()); System.out.println(element2.getText()); } }
好了解析xml就到这里
以上是关于xml的主要内容,如果未能解决你的问题,请参考以下文章
从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration