- 什么是XML?
- XML是指可扩展标记语言(eXtensible Markup Language)
- 它是一种标记语言,很类似HTML。
- 在XML语言中,它允许用户自定义标签。一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其它标签描述其他数据,以此来实现数据关系的描述。
- XML的用途
- 主要用于传输数据
- XML的应用
- 不同的系统之间传输数据
- 用来表示生活中有关系的数据
- 配置文件,以描述程序模块之间的关系。
- XML注意
- 由于在XML中,空格和换行(格式二)都作为原始内容被处理。所以在编写XML文件时,使用换行和缩进等方式让原文件中等书写习惯要改变。
<!-- 格式一 --> <username>fatRabbit</username> <!-- 格式二 --> <username> fatRabbit </username>
- 由于在XML中,空格和换行(格式二)都作为原始内容被处理。所以在编写XML文件时,使用换行和缩进等方式让原文件中等书写习惯要改变。
- XML标签的命名规则
- xml代码区分大小写
- 不能以数字和下划线(_)开头
- xml的标签不能以xml、XML、Xml等开头
- xml的标签不能包含空格和冒号
- XML标签的属性定义规则
- 一个标签可以有多个属性
- 属性名称不能相同
- 属性名称和属性值之间使用=,属性值使用引号(单、双都可以)包起来
- 属性命名与元素命名规范一致
- XML标签特殊字符
- &:&
- <:&ly;
- >:>
- ":"
- ': '
- CDATA区
- 可以解决多个字符都需要转义的操作
- 把这些内容放入CDATA区里面,不需要转义了
- 把特殊字符,当作文本内容处理,而不是标签
-
<![CDATA[内容]]>
- PI指令
- 设置样式,只对英文标签名称起作用
<?xml-stylesheet type="text/css" href=""?>
- 设置样式,只对英文标签名称起作用
- 读取XML
-
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href=""?>
<!--
version:xml版本
encoding:xml编码
standalong:是否需要依赖其他文件
-->
<user>
<info>
<username>rabbit</username>
<password>fat</password>
</info>
</user>
/** * 获取document对象 * * @param path xml路径 * @return * @throws DocumentException */ private Document getDocumentObject(String path) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(path); return document; } /** * 解析xml * @throws DocumentException */ private void paramXML() throws DocumentException { Document document = getDocumentObject(this.getClass().getResource("/").getPath() + "../../xml/test.xml"); Element e = document.getRootElement(); Iterator iterator = e.elementIterator(); while (iterator.hasNext()) { Element next = (Element) iterator.next(); String username = next.elementTextTrim("username"); String password = next.elementTextTrim("password"); System.out.println("username=" + username + ",password=" + password); } }/**
* 添加节点
* @param ub
* @throws DocumentException
*/
public void writeXML(UserBean ub) throws DocumentException {
SAXReader reader = new SAXReader();
String path = this.getClass().getResource("/").getPath() + "../../xml/test.xml";
Document document = reader.read(path);
Element rootElement = document.getRootElement();
Element element = rootElement.addElement("info");
//添加子节点
Element username = element.addElement("username");
//设置节点文字
username.setText(ub.getUsername());
Element password = element.addElement("password");
password.setText(ub.getPassword());
Element phone = element.addElement("phone");
phone.setText(ub.getPhone());
Element email = element.addElement("email");
email.setText(ub.getEmail());
try {
//写入到文件
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileWriter(path), of);
writer.write(document);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
-
转载于:https://www.cnblogs.com/fatRabbit-/p/10149662.html