可扩展标记性语言
文档声明
<?xml version="1.0" encoding="utf-8" ?>
元素(标签)
元素是指从开始标签到结束标签的内容(包括标签)
<标签名属性=”值” 属性=”值” ...... />
<标签名属性=”值” 属性=”值” ......>文本数据或子标签</标签名>
xml属性
xml注释
<!-- xml 注释-->
文本区域(CDATA区)
CDATA语法可以告诉xml解析器,里面的文本内容只是纯文本,不需要xml语法解析
所有XML元素都须有关闭标签(也就是闭合)
XML标签对大小写敏感
XML必须正确地嵌套
XML文档必须有根元素
根元素是没有父标签的顶级元素,而且是唯一一个才可以
<?xml version="1.0" encoding="utf-8" ?>
<books><!--books 表示多本图书信息-->
<book sn="SN123456"><!--book 表示一本图书信息-->
<name>红楼梦</name>
<author>
曹雪芹
<![CDATA[
<<<<<<<一个为伟大的作家
]]>
</author>
<price>50</price>
</book>
</books>
添加dom4j的jar包,并将jar包添加到类路径
准备好需要被解析的xml文件
使用的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book sn="SN12341232">
<name>辟邪剑谱</name>
<price>9.9</price>
<author>班主任</author>
</book>
<book sn="SN12341231">
<name>葵花宝典</name>
<price>99.99</price>
<author>班长</author>
</book>
</books>
解析获取Document对象的代码
创建SaxReader输入流对象,用于读取xml文件,并创建Document对象
//创建一个SAXReader输入流,读取xml配置文件,生成Document对象
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/test.xml");
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/test.xml");
Element rootElement = document.getRootElement();
// System.out.println(rootElement);//org.dom4j.tree.DefaultElement@148080bb [Element: <books attributes: []/>]
List<Element> books = rootElement.elements("book");
for(Element e : books){
//asXML():把标签对象转换为标签字符串
// System.out.println(e.asXML());
Element name = e.element("name");
// System.out.println(name.asXML());
//getText():可以获取标签中的文本内容
String nameText = name.getText();
//elementText():可以直接获取指定标签名的文本内容
String priceText = e.elementText("price");
// System.out.println(priceText);
String authorText = e.elementText("author");
// System.out.println(authorText);
//attributeValue():获取标签的属性
String sn = e.attributeValue("sn");
// System.out.println(sn);
System.out.println(new test(sn, nameText, Double.parseDouble(priceText), authorText));
}
原文:https://www.cnblogs.com/CrabDumplings/p/13585939.html