有哪位Java高手能解析出这个xml文件?用dom4j. 务必把每个节点,每个属性解析到位. 可以封装成java bean对象
发布网友
发布时间:2022-06-16 06:27
我来回答
共3个回答
热心网友
时间:2023-11-01 21:08
..写了我10来分钟,我是直接打印出来的,你如果想封装成bean会非常麻烦,最少需要6个类,需要建立最少5个容器,
package com.myspring.test;
import java.io.InputStream;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class CopyOfDom4jTest2 {
public static void main(String[] args) {
String xmlpass = "/temp1.xml";
//Dom4jTest.class 意思是创建了一个Dom4jTest的类 类型
Class c = CopyOfDom4jTest2.class;
InputStream ips = c.getResourceAsStream(xmlpass);
System.out.println(xmlpass);
//创建读取对象
SAXReader reader = new SAXReader();
try {
//document对象代表文件
Document document = reader.read(ips);
/**根节点*/
//读到文件读 根 节点 ...文件里面是什么读出来就是什么
Element beanss = document.getRootElement();//返回值element 里面是集合形式
//System.out.println("---------------beans1--------:"+beans1);
String Ver = beanss.attributeValue("Ver");
System.out.println("Gis_Res 节点 ver="+Ver);
/**一级节点*/
//获得beans内的下一级节点 bean节点 用迭代器迭代
Iterator<Element> beans1 = beanss.elementIterator();
while (beans1.hasNext()) {
Element bean1 = (Element) beans1.next(); //迭代出根节点的子节点一级节点 bean
System.out.println("节点名称-------"+bean1.getName()+"-----------------");
//获取一级节点bean节点的属性value的值,括号内传的是节点ID,如 "id"
String Version = bean1.attributeValue("Version");
System.out.println("Version="+Version);
/**二级节点*/
Iterator<Element> beans2 = bean1.elementIterator();//获取所有二级节点prop,开始迭代
while (beans2.hasNext()) {
Element bean2 = (Element) beans2.next();
System.out.println("节点名称-------"+bean2.getName()+"-----------------");
String Message = bean2.attributeValue("Message");
String SuccessCode = bean2.attributeValue("SuccessCode");
if (Message!=null) {
System.out.println("Message="+Message);
}
if (SuccessCode!=null) {
System.out.println("SuccessCode="+SuccessCode);
}
/**叁级节点*/
Iterator<Element> beans3 = bean2.elementIterator();//获取所有二级节点prop,开始迭代
while (beans3.hasNext()) {
Element bean3 = (Element) beans3.next();
System.out.println("节点名称-------"+bean3.getName()+"-----------------");
String countryCode = bean3.attributeValue("countryCode");
String accuracy = bean3.attributeValue("accuracy");
String uom = bean3.attributeValue("uom");
String value = bean3.attributeValue("value");
if (countryCode!=null)
System.out.println("countryCode="+countryCode);
if (accuracy!=null)
System.out.println("accuracy="+accuracy);
if (uom!=null)
System.out.println("uom="+uom);
if (value!=null)
System.out.println("value="+value);
/**四级节点*/
Iterator<Element> beans4 = bean3.elementIterator();//获取所有二级节点prop,开始迭代
while (beans4.hasNext()) {
Element bean4 = (Element) beans4.next();
System.out.println("节点名称-------"+bean4.getName()+"-----------------");
String isEncrypted = bean4.attributeValue("isEncrypted");
String isOriginalCoord = bean4.attributeValue("isOriginalCoord");
String type = bean4.attributeValue("type");
if (isEncrypted!=null)
System.out.println("isEncrypted="+isEncrypted);
if (isOriginalCoord!=null)
System.out.println("isOriginalCoord="+isOriginalCoord);
if (type!=null)
System.out.println("type="+type);
System.out.println(bean4.getText());
/**五级节点*/
Iterator<Element> beans5 = bean4.elementIterator();//获取所有二级节点prop,开始迭代
while (beans5.hasNext()) {
Element bean5 = (Element) beans5.next();
System.out.println("节点名称-------"+bean5.getName()+"-----------------");
String test5 = bean5.getText();
System.out.println(test5);
}
}
}
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
热心网友
时间:2023-11-01 21:08
推荐你研究下castor这个框架吧....
热心网友
时间:2023-11-01 21:09
JXCB.