dom4j如何解析出下面的xml格式文件,急求高手帮忙!

Dage 2012-03-16 10:55:13
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>
...全文
129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mainstream_Code 2012-03-16
  • 打赏
  • 举报
回复
代码我保留了 哈哈
gmogle 2012-03-16
  • 打赏
  • 举报
回复
楼上好样的
七_号 2012-03-16
  • 打赏
  • 举报
回复
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();
}
}
}
Dage 2012-03-16
  • 打赏
  • 举报
回复
没有结过贴呢?新手,怎么报分数不符合啊?
七_号 2012-03-16
  • 打赏
  • 举报
回复
那么结帖吧。
Dage 2012-03-16
  • 打赏
  • 举报
回复
我也写出来了,代码如下:
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当中的
Dage 2012-03-16
  • 打赏
  • 举报
回复
谢谢了!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧