dom4j获取某个已知节点的值+循环名字相同的节点

dom4j获取某个已知节点的值:

可能犯的错误:

(1)没有引入jar包

需要两个jar包

jaxen-1.1-beta-6.jar
dom4j-1.6.1.jar

(2)没有区分大小写,如下面  (**************************需要区分大小写)

要处理的xml文件


0001

如果获取的xml报文是String格式

String content="" +
"" +

""+

"你好"+

""+

""+
"";

//String类型转document类型的xml

Document document =null;
    SAXReader reader = new SAXReader();
StringReader stringReader = new StringReader(content.trim());
document = reader.read(stringReader);


//获取根节点

Element root = document.getRootElement();


//根据节点名字从根节点开始找到需要的子节点,注意大写小
    Node node=root.selectSingleNode("/root/result/Answer");                                                                             //(**************************需要区分大小写)


//获取节点的值

String noteContent=node.getText();

System.out.println(noteContent);



+2016年05月09日+

对于一个报文中有多个名字一样的节点该怎么处理呢?

selectNodes


/**
* 处理复杂的xml报文
* 即含有重复名字的报文
* @param args
*/
public static void twoNodeName(){
String xml="" +
"" +
"name1" +
"10" +
"
" +
"" +
  "name3" +
  "12" +
  "
" +
"
";
Document document=null;
try {
document = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}    

List nodes=document.selectNodes("/root/people");
for(Node node:nodes){
System.out.println(node.asXML());
}

}


你可能感兴趣的:(dom4j获取某个已知节点的值+循环名字相同的节点)