Java基础:浅析Java中的XML文件处理
概述
XML(全称Extensible Markup Language,可扩展标记语言)
.本质是一种数据的格式,可以用来存储复杂的数据结构,和数据关系
XML特点
1.XML中的“<标签名>”成为一个标签或者一个元素,一般成对出现的
2.XML中的便签名可以自己定义(可拓展),但必须要正确的嵌套
3.XML中只能有一个根标签
4.XML中的标签可以有属性
5.如果一个文件中防止的事XML格式的数据,这个文件就是XML文件,后缀一般要写成.xml
XML编写
XML创建
就是创建一个XML类型的文件,要求文件的后缀必须xml
ideal创建xml文件
xml语法规则
<?xml version="1.0" encoding="utf-8" ?>
<!-- 以下是新的xml内容 -->
<users>
<user id = "1">
<name>张三</name>
<sex>男</sex>
<age>18</age>
<hobby>炸鸡</hobby>
<sql>
<![CDATA[
select * from user where id >=1 && id <=3
]]>
</sql>
</user>
<user id="2" desc="这是一个李诞">
<name>李诞</name>
<sex>女</sex>
<age>20</age>
<hobby>脱口秀</hobby>
<sql>select * from user where id >=3 && id <=5 </sql>
</user>
</users>
XML的作用和应用场景
本质是一种数据格式,可以存储复杂的数据结构,和数据无关。
应用场景:经常作为系统配置文件,或者作为一种特殊的数据结构,在网络中传播
读取XML文件中数据
解析XML文件
程序员不需要自己写元素IO源代码来解析XML,难度大,也繁琐
其实很多开源框架,很好用,解析XML框架,最著名Dom4j(第三方研发)
步骤
解析
案例
// 目标:掌握dom4j解析xml文件
// 创建对象
SAXReader reader = new SAXReader();
// 1.解析xml文件
Document document = reader.read("day16-special-io/src/hello_world1.xml");
// 2.获取元素对象
Element rootElement = document.getRootElement();
// 3.获取元素内容
System.out.println("============= rootElement");
System.out.println(rootElement.getName());
// 4.获取属性值
// 5.获取子元素对象
System.out.println("============= chid");
// List<Element> elements = rootElement.elements();
List<Element> elements = rootElement.elements("user");
for (Element element : elements) {
System.out.println(element.getName());
}
// 6.获取单个子元素
Element user = rootElement.element("user");
System.out.println(user.elementText("name"));
// 7.获取子元素属性值
System.out.println(user.attributeValue("id"));
// 8.获取文本内容
System.out.println(user.elementTextTrim("name"));
Element nameE = user.element("name");
System.out.println(nameE.getText());
XML创建
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n");
sb.append("<user>\r\n");
sb.append("\t<name>").append("张三").append("</name>\r\n");
sb.append("\t<age>").append(18).append("</age>\r\n");
sb.append("\t<hight>").append(178.5).append("</hight>\r\n");
sb.append("</user>\r\n");
PrintStream ps = new PrintStream("day16-special-io/src/user1.xml");
ps.println(sb);
ps.close();
约束XML文件编写【了解】
什么是约束?
就是限制xml以某种格式进行书写
约束文档
抓们限制xml书写格式的文档,比如:限制标签、属性应该怎么写
约束文档分类
DTD文档
Schema文档