获取标签
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
*
*
*使用dom4j读取xml文档
* getRootElement();获取根标签
* getName();获取标签名称
* element("名称");获取第一个指定名称的子标签
* elements("名称");获取指定名称的所有的子标签
* elements();获取所有字标签
*
*/
public class dom1 {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document doc=reader.read(new File("./src/stduent.xml"));
/**
* 读取标签
*
*/
Element rootElem=doc.getRootElement();
System.out.println(rootElem);
System.out.println(rootElem.getName());
Element conElem= rootElem.element("contact");
System.out.println(conElem);
List<Element> elements = rootElem.elements("contact");
for(Element e: elements) {
System.out.println(e);
}
System.out.println("=============================");
List<Element> eList = rootElem.elements();
for(Element e: eList) {
System.out.println(e);
}
System.out.println("=============================");
/**
* 注意,如果要想拿孙标签,首先需要获取子标签,在从子标签获取孙标签!1
*/
Element nameElem= rootElem.element("contact").element("name");
System.out.println(nameElem);
}
}
获取属性及值
import java.io.File;
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;
/**
* 使用xml文件上的属性信息
*
*
*/
public class dom2 {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("./src/stduent.xml"));
Element rootElement = document.getRootElement();
/**
* 读取属性
* 注意获取属性必须先得到属性所在的标签
*/
Element conElem = rootElement.element("contact");
String value=conElem.attributeValue("id");
System.out.println(value);
System.out.println("==================================");
/**
* 想要获取002
*
*/
List<Element> list = rootElement.elements("contact");
Element element = list.get(1);
String value2 = element.attributeValue("id");
System.out.println(value2);
System.out.println("==================================");
/**
* 1.2根据属性名称获取属性对象
*/
Element element2 = rootElement.element("contact");
Attribute attribute = element2.attribute("id");
String idName=attribute.getName();
String value3 = attribute.getValue();
System.out.println(idName+"="+value3);
System.out.println("==================================");
Element element3 = rootElement.element("contact");
List<Attribute> attributes = element3.attributes();
for(Attribute attr : attributes) {
System.out.println(attr.getName()+"="+attr.getValue());
}
System.out.println("==================================");
Element element4 = rootElement.element("contact");
String value4 = element4.attributeValue("phone");
System.out.println(value4);
}
}
获取文本
import java.io.File;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class dom3 {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("./src/stduent.xml"));
/**
* 获取文本
* 注意:获取文本先要获取文本所在的标签对象
* 在xml文件中,空格和换行会作为xml文件的内容被解析,xml中的空格和换行和java中的空格
* 和换行是不一样的,java中的空格和换行是没有意义的只是为了美观。但是xml是有意思的
*
*/
Element element = document.getRootElement().element("contact").element("name");
String text = element.getText();
System.out.println(text);
System.out.println("=====================================");
Element element2 = document.getRootElement().element("contact");
String text2 = element2.elementText("name");
System.out.println(text2);
}
}