XML学习

什么是 XML

     XML 指可扩展标记语言(EXtensible Markup Language),编写XML就是编写标签,与HTML非常类似,扩展名为.xml。XML具有很好的人机可读性。

XML与HTML的异同

  • XML与HTML非常相似,都是编写标签
  • XML没有预定义标签,HTML存在大量预定义标签
  • XML重在保存与传输数据,HTML用于显示信息

XML的用途

  • Java程序的配置描述文件
  • 用于保存程序产生的数据
  • 网络间的数据传输

XML文档结构

  • 第一行必须是XML声明
<?xml version="1.0" encoding="UTF-8"?>
  • 有且只有一个根节点
  • XML标签的书写规则与HTML 相同

XML标签书写规则

  • 合法的标签名

标签名要有意义
建议使用英文小写字母,单词之间使用-分割
建议多级标签不要存在重名的情况

<!-- 错误示例-->
<abc>1223</abc>
<名称$>李四</名称$>
<name><name>李四</name></name>

<!-- 正确示例-->
<shop-cart><item>相册</item></shop-cart>

  • 适当的注释与缩进

  • 合理使用属性
<?xml version="1.0" encoding="UTF-8"?>
<shop-cart>
	<item sn="12324" category="电器">
		<name>电视机</name>
		<price>2000</price>
		<num>2</num>
	</item>
	<item sn="1324" category="食品">
		<name>面包</name>
		<price>20</price>
		<num>2</num>
	</item>
</shop-cart>

  • 特殊字符与CDATA标签

标签体中出现"<"、" > "特殊字符,会破坏文档结构

解决办法一:实体引用

实体引用对应符号说明
&It;<小于
&gt;>大于
&amp;&和号
&apos;单引号
&quot;"双引号

解决办法二:CDATA标签

<!-- 内部文本不被xml解析-->
<![CDATA[
xxxxxxxx
xxxxxxx
]]>

  • 有序的子元素

Java与XML

在Java里面我们使用的是Dom4j解析XML。

Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。

请添加图片描述

  • Java读取XML
package com.study.dom4j;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4j {
	public void readXML(){
		String file = "E:/JavaWeb/myxml/src/1.xml";
		SAXReader reader = new SAXReader();
		try {
			Document document = reader.read(file);
			Element root = document.getRootElement();
			List<Element> employees = root.elements("part");
			for(Element employee : employees) {
				Attribute att = employee.attribute("id");
				System.out.println(att.getText());
				System.out.println(employee.elementText("name"));
				System.out.println(employee.elementText("age"));
				System.out.println(employee.elementText("sex"));
			}
		}catch(DocumentException e) {

		}
	}
	public static void main(String[] args) {
		Dom4j dom4j = new Dom4j();
		dom4j.readXML();
	}
	
}

请添加图片描述

  • Java写入XML
package com.study.dom4j;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4j {
	public void writeXML(){
		String file = "E:/JavaWeb/myxml/src/1.xml";
		SAXReader reader = new SAXReader();
		try {
			Document document = reader.read(file);
			Element root = document.getRootElement();
			Element part = root.addElement("part");
			part.addAttribute("id", "8888");
			part.addAttribute("name", "选项三");
			part.addElement("name").setText("王二麻子");
			part.addElement("age").setText("33");
			part.addElement("sex").setText("女");
			Writer writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
			document.write(writer);
			writer.close();
		}catch(DocumentException | IOException e) {
			System.out.println(e);
		}
	}
	public static void main(String[] args) {
		Dom4j dom4j = new Dom4j();
		dom4j.writeXML();
	}
	
}

请添加图片描述

总结

       现在我们基本已经熟悉了XML的一些基本知识,也学会了如何使用Java的Dom4j来操作XMl文件,后面我们在开发Java的过程中就会使用XML配置我们的项目。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值