1.Dom解析的原理
(xml解析引擎加载完毕xml文件时),会把xml文件中的各个部分封装成节点对象,然后通过节点对象获取或者设置标签,属性,文本内容,这就是dom解析模型)
2.Dom解析的步骤和工具
1)去官网下载dom4j-1.6.jar.zip包。
2)在项目导入dom4j的jar包。核心包dom4j-1.6.jar包即可
3)编写测试类。读取xml文件
3.使用Dom4j解析xml
public static void myDOMXML() throws Exception{
System.out.println("在项目需要频繁把xml文档封装成对象");
//使用集合的功能 (arraylist的使用)
List<Contact> contacts = new ArrayList<Contact>();
//1.创建SAXReader(解析器对象)
SAXReader reader = new SAXReader();
//2.调用reader方法l
Document doc = reader.read(new File("contact.xml"));
System.out.println(doc);
//获取全部的标签
Iterator<Element> it = doc.getRootElement().elementIterator("contact");
while (it.hasNext()){
//得到了一个xml的对象了
Element conElem = it.next();
//创建对象
Contact contact = new Contact();
//2.2 把contact标签数据放入Contact对象
//id
contact.setId(conElem.attributeValue("id"));
//name
contact.setName(conElem.element("name").getText());
//gendenr
contact.setName(conElem.element("gender").getText());
//加入到集合中去了
contacts.add(contact);
}
//变量集合看看
System.out.println("集合的个数"+contacts.size());
for (Contact contact : contacts) {
System.out.println(contact);
}
}
4.使用dom4j解析工具读取xml文件
1. 得到xml文档信息
SAXReader类: read():读取xml文档
2.节点信息:
nodeIterator(): 获取当前标签下的子节点
3.标签信息:
getName(): 得到标签名称
element(name); 获取当前标签下的指定名称的第一个子标签
ementIterator(name); 获取当前标签下的指定名称的所有子标签
elements(); 获取当前标签下的所有子标签
4.属性信息:
attributeValue(name): 获取指定属性名的属性值
attribute(name); 获取指定属性名的属性对象
attributes(): 获取所有属性对象。返回List集合
attributeIterator(): 获取所有属性对象。返回Iterator
getName():获取属性名称
getValue(): 获取属性值
5.文本信息:
getText(): 获取标签的文本内容