首页 > 代码库 > Dom4j 查找节点或属性
Dom4j 查找节点或属性
Dom4j 查找节点或属性
例如
1 查找下面xml中的student节点的age属性,
xpathstr="/students/student/@age";
2 查找下面xml中的student节点的telephone的值,
xpathstr="/students/student/telephone";
3 查找下面xml中的student节点的telephone的值,并且要满足name中包含“2030”,用到模糊查找
xpathstr="/students/student[contains("name","2030")]/telephone";
完整的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student name="beijings2014" age="25">
<college>mobile</college>
<telephone>888</telephone>
</student>
<student name="shanghais2019">
<college>pc</college>
<telephone>999</telephone>
</student>
<student name="xi‘ans2030">
<college>pad</college>
<telephone>000</telephone>
</student>
</students>
具体方法:查找节点或属性,传入Document 和 xpathstr,此处Document 类型为 org.dom4j.Document,
如果用的是org.w3c.dom.Document则需要转换,可以看之前的一篇"
org.w3c.dom.Document 与org.dom4j.Document互转
"
1 public String getContentString(Document document,String xpathstr){ 2 3 List list = document.selectNodes(xpathstr); 4 String result=""; 5 6 Iterator iter = list.iterator(); 7 iter = list.iterator(); 8 if (iter.hasNext()) { 9 10 Object o=iter.next();11 if(o instanceof Attribute){12 Attribute attribute = (Attribute) o; 13 //hm.put(attribute.getName(),attribute.getValue());14 result=attribute.getValue();15 if(debugf){16 System.out.println(attribute.getName()+":"+attribute.getValue());17 }18 19 }20 if(o instanceof Element){21 Element element = (Element) o;22 String name = element.getName();23 String value =http://www.mamicode.com/ element.getText();24 //hm.put(name, value);25 result=value;26 if(debugf){27 System.out.println(name+":"+value);28 }29 }30 } else {31 return result;32 }33 return result;34 }
Dom4j 查找节点或属性