先说一下最开始自己的需求吧,我需要把一段xml的报文里面最里面一层的所有节点以及内容全部取出来,按照常规方法都是根据节点名字去取吧 虽然写出来了 但是很繁琐 觉得代码很冗余 后来想到了递归 用递归去取 果然简单了很多 下面直接贴代码了
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlTest2 {
//顺便说一下这儿定义一个静态对象的原因,最开始我是在递归方法中去定义了一个Map,发现每次递归时,map中只有一个节点和值,仔细一想,发现每一次递归都会
次递归都会新生成一个Map,然后我接受到的始终是第一次传进去的值,所以定义一个静态对象,每次递归都往里面存,就可以全部取出来了,无论xml报文多少层,都可以解析完成
public static Map a=new HashMap();
public static void main(String[] args) {
String xmldata="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"