1. 程式人生 > >dom和xpath解析xml

dom和xpath解析xml

學生 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