XML系列:(8)XML解析-Dom4j的xPath技术
发布时间:2020-12-16 02:23:36 所属栏目:百科 来源:网络整理
导读:1、xPath技术 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! xPath作用:主要是用于快速获取所需的节点对象。 1.1、在dom4j中如何使用xPath技术 1)导入xPath支持jar包 。 jaxen-1.1-beta-6.jar(这个jar包在dom4j的压
1、xPath技术问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! xPath作用:主要是用于快速获取所需的节点对象。 1.1、在dom4j中如何使用xPath技术1)导入xPath支持jar包 。 jaxen-1.1-beta-6.jar(这个jar包在dom4j的压缩包中,位置:dom4j-1.6.1libjaxen-1.1-beta-6.jar) 2)使用xpath方法 ListselectNodes("xpath表达式"); 查询多个节点对象 Node selectSingleNode("xpath表达式"); 查询一个节点对象 1.2、xPath语法
2、xPath代码示例2.1、第一个示例packagecom.rk.xml.i_xpath; importorg.dom4j.Document; importorg.dom4j.Node; importcom.rk.utils.Dom4jUtil; /** *第一个示例 *@authorRK * */ publicclassDemo01 { publicstaticvoidmain(String[]args) { /** *需求:删除id值为“c002”的Cat标签 */ Documentdoc=Dom4jUtil.openDocument("./src/animals.xml"); //1.查询id值为“c002”的Cat标签 //使用xpath技术 NodetargetNode=doc.selectSingleNode("//Cat[@id='c002']"); //2.删除标签 targetNode.detach(); Dom4jUtil.saveDocument(doc,"D:/rk/result.xml"); System.out.println("执行结束!"); } } 2.2、xPath表达式语法packagecom.rk.xml.i_xpath; importjava.util.List; importorg.dom4j.Document; importorg.dom4j.Node; importcom.rk.utils.Dom4jUtil; /** *学习xPath表达式语法 *@authorRK * */ publicclassDemo02 { publicstaticvoidmain(String[]args) { StringsourceXML="./src/animals.xml"; StringtargetXML="D:/rk/result.xml"; Documentdoc=Dom4jUtil.openDocument(sourceXML); Stringxpath=""; /** *1. /绝对路径表示从xml的根位置开始或子元素(一个层次结构) */ xpath="/Animals"; xpath="/Animals/Cat/Home"; /** *2.//相对路径表示不分任何层次结构的选择元素。 */ xpath="//Dog/Home"; xpath="//Home"; /** *3.*通配符表示匹配所有元素 */ xpath="/Animals/*";//根标签Animals下的所有子标签 xpath="/Animals//*";//根标签Animals下的所有标签(不分层次结构) /** *4.[]条件表示选择什么条件下的元素 */ xpath="/Animals/Cat[2]";//第二个的Cat标签 xpath="/Animals/*[last()]";//最后一个的Animals的子标签 xpath="//*[@id]";//带有id属性的标签 /** *5.@属性表示选择属性节点 */ xpath="//@id";//选择id属性节点对象,返回的是Attribute对象 xpath="//*[not(@id)]";//选择不包含id属性的标签节点 xpath="//Cat[@id='c002']";//选择id属性值为c002的Cat标签 xpath="//Cat[@id='c002'and@name='咪咪']";//选择id属性值为c002,且name属性为咪咪的Cat标签 /** *6.text()表示选择文本内容 */ //选择Home标签下的文本内容,返回Text对象 xpath="//Home/text()"; xpath="//Cat/Home[text()='地球']";//选择Home为“地球”的Cat标签 @SuppressWarnings("unchecked") List<Node>list=doc.selectNodes(xpath); for(Nodenode:list) { System.out.println(node); } Dom4jUtil.saveDocument(doc,targetXML); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |