xml文件的格式如下:
<?xml version="1.0" encoding="GBK"?>
<ROOT>
<RETURN_CODE type="long">0</RETURN_CODE>
<RETURN_MSG type="string">成功</RETURN_MSG>
<DETAIL_MSG type="string">终端活动查询</DETAIL_MSG>
<OUT_DATA>
<TERMACT_LIST>
<TERMACT_INFO>
<ACT_ID type="string">201112061045317942</ACT_ID>
<ACT_NAME type="string">测试11</ACT_NAME>
<ACT_TYPE type="string">01</ACT_TYPE>
<ACT_TYPE_NAME type="string">主动营销</ACT_TYPE_NAME>
<ACT_CLASS type="string">2</ACT_CLASS>
<ACT_CLASS_NAME type="string">全部元素</ACT_CLASS_NAME>
<GROUP_ID type="string">10031</GROUP_ID>
<GROUP_NAME type="string">哈尔滨</GROUP_NAME>
<MEANS_ID type="string">201112061045317947</MEANS_ID>
<MEANS_NAME type="string">全部元素</MEANS_NAME>
<RESOURCE_BRAND type="string">摩托罗拉 </RESOURCE_BRAND>
<RESOURCE_MODEL type="string">V8 </RESOURCE_MODEL>
<RESOURCE_FEE type="string">3000.00 </RESOURCE_FEE>
</TERMACT_INFO>
<TERMACT_INFO>
<ACT_ID type="string">201112061045317942</ACT_ID>
<ACT_NAME type="string">测试11</ACT_NAME>
<ACT_TYPE type="string">01</ACT_TYPE>
<ACT_TYPE_NAME type="string">主动营销</ACT_TYPE_NAME>
<ACT_CLASS type="string">2</ACT_CLASS>
<ACT_CLASS_NAME type="string">全部元素</ACT_CLASS_NAME>
<GROUP_ID type="string">10031</GROUP_ID>
<GROUP_NAME type="string">哈尔滨</GROUP_NAME>
<MEANS_ID type="string">201112081045318302</MEANS_ID>
<MEANS_NAME type="string">终端活动</MEANS_NAME>
<RESOURCE_BRAND type="string">海信</RESOURCE_BRAND>
<RESOURCE_MODEL type="string">N52</RESOURCE_MODEL>
<RESOURCE_FEE type="string">500.00</RESOURCE_FEE>
</TERMACT_INFO>
</TERMACT_LIST>
</OUT_DATA>
</ROOT>

解决方案 »

  1.   

    test.xml就是你的xml文件,和此类在同一级目录下。package study;
    import java.util.List;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;/**
     * @author Joker
     * @vision $vision 1.00 $
     */
    public class ReadXml {
    private Document document;
    public Document getDocument() {
    return document;
    }
    public void setDocument(Document document) {
    this.document = document;
    }
    /**
     * 读取配置文件,初始化流程操作类
     * @throws Exception
     */
    public void initWorkFlow() throws Exception {
    SAXReader reader = new SAXReader();
    //把xml文件读入到document对象中,注测试xml和class文件同级
    reader.read(this.getClass().getResource("") + "test.xml");
    setDocument(reader.read(this.getClass().getResource("") +"test.xml"));
    //取根节点
    Element root = document.getRootElement();
    //遍历节点,输出
    printE(root);
    }
    //取所有节点
    public void printE(Element e){
    List<Element> list = e.elements();
    if(list!=null&&list.size()>0){
    for(Element ment : list){
    System.out.println(ment.getPath() + ":" + ment.getTextTrim());
    printE(ment);
    }
    }
    }
    public static void main(String[] args) {
    ReadXml rx = new ReadXml();
    try {
    rx.initWorkFlow();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
      

  2.   

    我也写出来了,代码如下:
    package cn.gao;
    import java.io.File;
    import java.util.Iterator;
    import java.util.List;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    public class Dom4jTest1 {
    public static void main(String[] args) throws Exception {
    File file = new File("D:"+File.separator+"chao.xml");
    SAXReader reader = new SAXReader();
    Document doc = reader.read(file);//读取xml配置文件,用来生成document文档对象
    Element root = doc.getRootElement();//获取文档的根节点. 
    System.out.println(root.elementText("RETURN_CODE")); //取得节点的文字
    System.out.println(root.elementText("RETURN_MSG"));
    System.out.println(root.elementText("DETAIL_MSG"));
    int count = 0;
    for(Iterator<Element>  ite =root.elementIterator("OUT_DATA");ite.hasNext(); ){
         Element e_pe = ite.next();
         String nodes = e_pe.getName();
       //  System.out.println("当前节点的名称:"+nodes);
         Element terminalList = e_pe.element("TERMACT_LIST");
           for(Iterator<Element> list = terminalList.elementIterator(); list.hasNext();){
              Element terminalInfo = list.next();
              count++;
            //  System.out.println("==========第"+count+"个=======");
              System.out.println(terminalInfo.elementText("ACT_ID"));
              System.out.println(terminalInfo.elementText("ACT_NAME"));
              System.out.println(terminalInfo.elementText("ACT_TYPE"));
              System.out.println(terminalInfo.elementText("ACT_TYPE_NAME"));
              System.out.println(terminalInfo.elementText("ACT_CLASS"));
              System.out.println(terminalInfo.elementText("RESOURCE_BRAND"));
              System.out.println(terminalInfo.elementText("RESOURCE_MODEL"));
              System.out.println(terminalInfo.elementText("RESOURCE_FEE"));
           }
       }
    }}
    运行的结果是:
    0
    成功
    终端活动查询
    201112061045317942
    测试11
    01
    主动营销
    2
    摩托罗拉 
    V8 
    3000.00 
    201112061045317942
    测试11
    01
    主动营销
    2
    海信
    N52
    500.00
    ====================
    那个配置文件的内容放在d:/chao.xml当中的