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指定节点的属性的名称列表的主要内容,如果未能解决你的问题,请参考以下文章

XPath如何定位dom节点

java中dom方式读取xml,怎样根据xml的某个属性找到指定节点?? 比如id属性

[Java] 通过XPath获取XML中某个节点的属性

从 XML 节点 java 生成/获取 xpath

XPath

xPath 用法总结整理