dom4j 块数查找节点(非遍历方式)
2016-09-07 17:25
288 查看
使用下面这种方式能够直接根据节点的关系查找到节点,然后访问里面的值或者属性
package com.hb; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Node; import org.dom4j.io.SAXReader; import org.junit.Test; import org.xml.sax.SAXException; public class Dom4jReadXml { /** * 随机的获取节点,即指明节点就能得到相关数据 */ @Test public void RandomReadNode(){ SAXReader saxReader = new SAXReader(); String filePath = "d:/AppProperty.xml"; File file = new File(filePath); try { Document document = saxReader.read(file); //使用这种方式读取节点需要导入jaxen.jar包 List list = document.selectNodes("/result/value/no"); Iterator it = list.iterator(); while(it.hasNext()){ Node node = (Node)it.next(); System.out.println(node.getText()); } System.out.println(document.selectNodes("value").size()); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
备注:如果想要上面的方法运行正确,除了需要引入dom4j.jar还需要jaxen.jar包
package adtec.util.account; import java.io.File; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import adtec.util.XMLProperties; public class ABC { /** <?xml version="1.0" encoding="UTF-8"?> <rootNode> <jdbcUserProvider> <class>执行认证类的class,这个利用反射来找到该类,并操作数据库</class> <pojoClass>指明查询的结果集转换的类</pojoClass> <driver>驱动类</driver> <connection>连接DB的数据库的账号和密码</connection> <tablename>查询的表明</tablename> <accountIdField>账号的主键</accountIdField> <usernameField>指明用户名</usernameField> <passwordField>指明密码</passwordField> </jdbcUserProvider> </rootNode> */ public static void main(String[] args) { String pathStr = "D:/JavaProject/myspring/src/adtec/util/test.xml"; File file = new File(pathStr); try { SAXReader xmlReader = new SAXReader(); xmlReader.setEncoding("UTF-8"); Document document = xmlReader.read(file); // System.out.println(document.asXML()); //root 节点是rootNode Element element = document.getRootElement(); System.out.println(element.asXML()); // System.out.println(element.getText()); //显示xml的path,这里是/rootNode System.out.println(element.getUniquePath()); //显示xml的path,这里是/rootNode/jdbcUserProvider System.out.println(element.element("jdbcUserProvider").getUniquePath()); //如果不是叶子节点,则getText()方法的值为空 System.out.println(element.element("jdbcUserProvider").element("class").getText()); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
备注:上面这个例子强调rootElement代表的具体节点,以及element(String)的使用方法
jaxen.jar (232.3 KB)
下载次数: 8
dom4j.jar (306.5 KB)
下载次数: 0
相关文章推荐
- dom4j解析XML文件,通过属性查找节点,出现异常
- Dom4j 查找节点或属性
- Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
- 【慕课笔记】4-2 应用DOM4J及JDOM方式解析XML—应用JDOM解析节点属性
- dom4j的xpath查找xml的指定节点
- 【PHP】节点型列表,PHP递归查找方式 (父节点包含子节点)
- dom4j的xpath查找xml的指定节点
- dom4j的xpath查找xml的指定节点
- 【慕课笔记】4-8 应用DOM4J及JDOM方式解析XML—应用DOM4J解析子节点的信息
- dom4j的xpath各种方法查找节点
- 【慕课笔记】4-7 应用DOM4J及JDOM方式解析XML—应用DOM4J解析节点属性
- dom4j用xpath方式来查找(包括多条件查询)
- Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
- 【慕课笔记】4-3 应用DOM4J及JDOM方式解析XML— 应用JDOM解析子节点的名和值
- jquery查找节点和创建节点的方式
- 递归方式+FindWindow 遍历窗口句柄。查找已知句柄下的所有句柄。按节点方式保存
- 二叉查找树(BST)---拷贝 相等判断 查找节点 统计节点 统计层数 判断BST
- VB.NET中TreeView查找下一个节点
- 网络中两种种交付方式:节点到节点(node-to-node)、端到端(end-to-end)
- 如何在C#中实现treeview查找某一节点