笔记目录:
1.了解XML解析
2.使用DOM读取和维护XML数据
3.使用DOM4J读取和维护XML数据
1.DOM4J介绍

2. DOM4J读写机制

3. DOM4J常用API
DOM4J的主要接口都定义在org.dom4j这个包里

4.DOM4J解析XML的步骤

5. DOM4J保存XML的步骤

如果XML文档为全英文,保存XML可以简化:
XMLWriter writer = new XMLWriter (new FileWriter("XML文件"));
writer.write(Document对象);
writer.close();
6.使用DOM4J操作XML时主要使用的对象及其方法
6.1 Document对象

6.2 Element对象

6.3 Attribute对象

7. 常用方法补充
| 方法名 | 描述 |
| Element元素对象.setText() | 设置元素的值 |
| Element元素对象.setTextContent() | 设置元素的值,和setText()效果一样 |
取标签元素的值补充:
取标签元素得值有两种思路,1.先attribute("name")取得标签元素中name属性的对象,然后再getText()来获取该属性元素的值
2.使用attributeValue("属性名"),直接用标签元素调用该方法获取其属性名对应值
设置属性的值补充:
设置属性的值有两种思路,1.先attribute("name")取得标签元素中name属性的对象,然后再setText()来设置该属性元素的值
2.使用setAttributeValue("属性名","值"),直接用标签元素调用该方法设置其属性名和其对应值
8. 解析读取XML文档思路
DOM4J不像DOM一样直接获取整个DOM树,想读取哪个标签的内容都可以直接访问到,DOM4J需要一层一层的读取来访问这些数据
9.DOM4J解析XML实例
代码:
public class DOM4J解析XML {
public static void main(String[] args) throws DocumentException, IOException {
//创建解析器
SAXReader saxReader=new SAXReader();
//加载指定XML文件
Document doc=saxReader.read("手机信息.xml");
//获得根标签
Element root=doc.getRootElement();
//解析XML信息
System.out.println(doc.asXML());
/*List<Element> brands=root.elements("Brand");
for (Element element : brands) {
//element.attribute("name").getValue();
String name=element.attributeValue("name");
List<Element> types=element.elements("Type");
for (Element type : types) {
String typeName=type.attributeValue("name");
String price=type.getTextTrim();
System.out.println("品牌:"+name+" 类型:"+typeName+" 价格:"+price);
}
}*/
//添加节点:
Element newBrand=root.addElement("Brand");//<Brand></Brand>
newBrand.setAttributeValue("name", "小米");//<Brand name="小米"></Brand>
Element newType=newBrand.addElement("Type");//<Brand name="小米"><Type></Type></Brand>
newType.setAttributeValue("name", "mi10");//<Brand name="小米"><Type name="mi10"></Type></Brand>
newType.setText("1999元");//<Brand name="小米"><Type name="mi10">1999元</Type></Brand>
//修改节点:
newType.setAttributeValue("name", "mi11");
newType.setText("3999元");
//newBrand.remove(newType);
newType.getParent().remove(newType);
//删除节点:
newType.remove(newType.attribute("name"));
newType.setText("");//remove(Text对象);
//保存XML文件
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream("新手机信息.xml"), format);
xmlWriter.write(doc);
xmlWriter.close();
}
}
XML文件:
<!-- 手机信息.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<PhoneInfo>
<Brand name="华为">
<Type name="P90">5000元</Type>
</Brand>
<Brand name="苹果">
<Type name="iPhone Z">18000元</Type>
<Type name="iPhone ZL">12000元</Type>
</Brand>
</PhoneInfo>
<!-- 新的手机信息.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<PhoneInfo>
<Brand name="华为">
<Type name="P90">5000元</Type>
</Brand>
<Brand name="苹果">
<Type name="iPhone Z">18000元</Type>
<Type name="iPhone ZL">12000元</Type>
</Brand>
<Brand name="小米"/>
</PhoneInfo>
10. XML,DOM,DOM4J总结

这篇博客介绍了如何使用DOM4J进行XML数据的读取和维护,包括DOM4J的基本介绍、读写机制、常用API以及解析和保存XML的步骤。重点讲解了Document、Element和Attribute对象的使用,并提供了操作XML属性的方法补充和解析XML的实例。
912

被折叠的 条评论
为什么被折叠?



