概述
xpath的必要性
为了我们根据方便的访问的某个节点,我们可以使用xpath技术,当使用xpath后,就可以非常方便的读取到指定节点,xpath往往是结合dom4j一并使用.
说明:如果要使用xpath 则需要引入一个新的包:
原理图:
特别说明:
//@id |
选择所有的id属性 |
|
如果我们通过 //@id 取回的节点类型是 Attribue,不是Element
用法:
//3.可以使用xpath随心读取
List e=document.selectNodes("//@id");//返回多个元素
System.out.println(((Attribute)e.get(1)).getText());
注意:xpath 是可以任意组合:
比如:
<?xml version="1.0" encoding="utf-8"?>
<AAA>
<BBB id = "b1">
<CCC>
<KKK>k2</KKK>
</CCC>
<CCC>
<KKK>k1</KKK>
</CCC>
</BBB>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
要找到 <KKK>k2</KKK>
xpath 应该这样写 : /AAA/BBB[1]/CCC[1]/KKK
案例:
package five;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XPath {
/**
* dom4j配合xpath案例
* @param args
*/
public static void main(String[] args)throws Exception {
//1,得到SAXReader解析器
SAXReader saxReader=new SAXReader();
//2,指定去解析哪个文件
Document document=saxReader.read("src/five/test.xml");
//3,可以使用xpath随心读取
List e=document.selectNodes("/AAA/BBB");//返回多个元素 document.selectSingleNode(arg0)返回一个元素
System.out.println(e.size());
List e1=document.selectNodes("//CCC");
System.out.println(((Element)e1.get(0)).getText().trim());
//父元素是BBB的CCC
List e2=document.selectNodes("//BBB/CCC");
System.out.println(e2.size());
}
}
Xml:
<?xml version="1.0" encoding="utf-8"?>
<AAA>
<BBB id = "b1">
<CCC>
sk
</CCC>
<CCC>
<KKK>k2</KKK>
</CCC>
<CCC>
<KKK>k1</KKK>
</CCC>
</BBB>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
<CCC/>
</AAA>
最后
以上就是怕孤单花瓣为你收集整理的韩顺平XML学习7的全部内容,希望文章能够帮你解决韩顺平XML学习7所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复