自己做免费的网站,重庆手机网站推广方法,深圳对留学生创业政策,青岛做公司网站的公司什么是XPath
XPath#xff1a;路径表达式
作用#xff1a;在DOM解析XML时#xff0c;通过XPath表达让解析更加简单
XPath表达式分类
绝对路径相对路径全文搜索属性查找
什么是Node对象
DOM树中的每个节点就是Node
dom4j中与XPath相关的方法
注#xff1a;使用XPat…什么是XPath
XPath路径表达式
作用在DOM解析XML时通过XPath表达让解析更加简单
XPath表达式分类
绝对路径相对路径全文搜索属性查找
什么是Node对象
DOM树中的每个节点就是Node
dom4j中与XPath相关的方法
注使用XPath需要另外导入 jaxen-1.1.2.jar包
Node对象的方法功能说明Node selectSingleNode(String xpath)通过xpath得到一个节点List selectNodes(String xpath)通过xpath得到一组节点
XPath绝对路径和相对路径
目标
学习XPath绝对路径的使用学习XPath相对路径的使用
绝对路径语法 绝对路径示例
需求
采用绝对路径获取从根节点开始逐层的查找/contactList/contact/name 节点列表并打印信息
步骤
创建 XML 解析器读取 XML 文档并获得Document对象定义 Xpath 表达式/contactList/contact/name调用Document对象的selectNodes()方法执行Xpath获得节点集合遍历输出每个节点
代码
public class Demo7Xpath {private Document document;//在每个测试方法之前执行的方法Beforepublic void init() throws DocumentException {//1. 得到SaxReaderSAXReader reader new SAXReader();//2. 得到文档对象document reader.read(Demo7Xpath.class.getResourceAsStream(/Contact.xml));}/**使用绝对路径*/Testpublic void testAbsolute() {String xpath /contactList/contact/name;//得到所有name元素ListNode nodeList document.selectNodes(xpath);for (Node node : nodeList) {System.out.println(node.getText());}}
}相对路径的语法 相对路径的示例
需求
先采用绝对路径获取 contactList 节点再采用相对路径获取下一级contact 节点的name子节点并打印信息。
步骤
定义 Xpath 表达式/contactList调用Document对象的 selectSingleNode 方法执行Xpath获得根节点对象通过根节点对象调用selectNodes方法执行相对路径表达式./contact/name打印输出所有的节点
代码
/**使用相对路径*/
Test
public void testRelative() {//通过绝对路径得到/contactListNode node document.selectSingleNode(/contactList);//通过相对路径得到nameNode nameNode node.selectSingleNode(./contact/name);System.out.println(nameNode.getText());
}XPath全文搜索和属性查找
目标 学习XPath全文搜索的使用 学习XPath属性查找的使用 举例
举例说明//contact找contact元素无论元素在哪里//contact/name找contact无论在哪一级但name一定是contact的子节点//contact//namecontact无论在哪一种name只要是contact的子孙元素都可以找到
全文搜索示例
需求
直接全文搜索所有的 name元素并打印
步骤
创建Xpath表达式 //name使用selectNodes()方法查询所有的name节点
代码
/**全文搜索*/
Test
public void testGlobalSearch() {ListNode nodes document.selectNodes(//name);for (Node node : nodes) {System.out.println(node.getText());}
}属性查找语法 属性查找的示例
查找所有id属性节点查找包括id属性的contact元素查找包括id属性且属性名为的contact元素
步骤
创建Xpath表达式使用selectNodes()方法查询所有的节点
代码
/**属性查找*/
Test
public void testAttributeFind() {//1. 查找所有id属性节点/*ListNode nodes document.selectNodes(//id);//是属性对象Attributefor (Node node : nodes) {//输出属性值Attribute a (Attribute) node;System.out.println(属性值 a.getValue());}*///2. 查找包括id属性的contact元素/*ListNode nodeList document.selectNodes(//contact[id]);for (Node node : nodeList) {System.out.println(node.getName());}*///3. 查找包括id属性且属性名为的contact元素Node node document.selectSingleNode(//contact[id2]);System.out.println(node.getName());
}