dom和xpath解析xml
阿新 • • 發佈:2018-02-01
學生 auth term roc select 方法 try nodes 屬性
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;
/**
* 解析xml
* @author WangShuang
*
*/
public class Demo {
/**
* 獲取xml標簽的文本內容和屬性值
* @param args
*/
@Test
public void run1() {
try {
//1.創建解析器對象
SAXReader sax = new SAXReader();
//2.解析xml文檔
Document document = sax.read("src/test.xml");
//3.獲得跟節點
Element root = document.getRootElement();
//4獲取學生節點
Element student = root.element("student");
//5獲取學生姓名節點
Element name = student.element("name");
System.out.println(name.getText());
//獲取學生屬性編號的值
Attribute attribute = name.attribute("id");
System.out.println(attribute.getValue());
} catch (DocumentException e) {
e.printStackTrace();
}
}
/**
* xpath獲取xml標簽的文本內容和屬性值
* @param args
*/
@Test
public void run2() {
try {
// 1. 先創建解析器對象
SAXReader sax = new SAXReader();
//2 .解析xml文檔
Document document = sax.read("src/test.xml");
// document是Node的子節點,能使用node節點對象的方法
Node node = document.selectSingleNode("//name");
// 獲取學生姓名
System.out.println(node.getText());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* xpath獲取xml標簽的文本內容和屬性值
* @param args
*/
@Test
public void run3() {
try {
SAXReader sax = new SAXReader();
Document document = sax.read("src/test.xml");
List<Node> selectNodes = document.selectNodes("//name");
for (Node node : selectNodes) {
System.out.println(node.getText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
需要導入的jar包
<?xml version="1.0" encoding="UTF-8"?> <Person> <student> <name id="01">張三</name> <sex>男</sex> </student> <!-- <student> <name id="01">lili</name> <sex>nv</sex> </student> --> </Person>
dom和xpath解析xml