java中使用xpath读取xml指定节点的属性的名称列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中使用xpath读取xml指定节点的属性的名称列表相关的知识,希望对你有一定的参考价值。
小弟不材,在学习Xpath过程中遇到的困难,大部份都自己搞定的,就下面的问题型不清楚,请大虾们解救...需求:如下所示常见的Hibernate的xml配置文件,在这里用来解析.注意到第四个<property>节点中有两个属性:name 和other ,xpth如何写才能读取第四个<property>的两个属性的名称,注意这里是要读取属性的名称,不是属性的值... <?xml version="1.0" encoding="UTF-8"?><hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.password">123</property> <property name="connection.url"> jdbc:mysql://localhost:3306/test_peng </property> <property name="dialect" other="false"> org.hibernate.dialect.MySQLDialect </property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <mapping resource="com/ibm/etpsample/common/hibernate/persistxml/Userinfo.hbm.xml"/> </session-factory></hibernate-configuration> 工具类:XmlUtils,其中有静态方法:static String getValue(Node node,String xpath)已实现代码如下:public static String getValue(Node contextNode, String xpath) if (contextNode == null) return null; String value = null; try value = XPathAPI.eval(contextNode, xpath).toString(); catch (Exception e) if (value != null) value = value.trim(); if (value.length() == 0) value = null; return value;
参考技术A //property[4]/@name//property[4]/@other 参考技术B 先找到那个节点,然后看有木有什么方法得到属性列表的~~~
[Java] 通过XPath获取XML中某个节点的属性
public String getPAUrl(){ String PAUrl = ""; try { String filePath = System.getProperty ("user.dir").toString()+"/src/test/resources/config/environment.xml"; logger.info("The path of environment.xml is : "+filePath); File file = new File(filePath); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(file); String currentEnv = Util.getEnvStr(); Element el =XmlUtil.getSingleElement(document, "/root/environment[@type=‘" + currentEnv + "‘]/PAUrl"); PAUrl = XmlUtil.getElementValue(el, "No default PA URL"); logger.info("PA Url : "+PAUrl); } catch (DocumentException e) { e.printStackTrace(); } return PAUrl; }
以上是关于java中使用xpath读取xml指定节点的属性的名称列表的主要内容,如果未能解决你的问题,请参考以下文章