java解析xml文件

java如何解析层节点的xml文件,最好用dom的方法解析,例子如下<?xmlversion="1.0"encoding="utf-8"?><glassversion="... java如何解析层节点的xml文件,最好用dom的方法解析,例子如下

<?xml version="1.0" encoding="utf-8"?>
<glass version="***">
<work>
<job>
<id>job0001</id>
<workId>work0001</workId>
<name>GS01 </name>
<type>abedo</type>
<tag>mod09GA</tag>
<rule>
<start>2000-1-1</start>
<timeUnit>year</timeUnit>
<timeLength>1</timeLength>
<stop>2005-12-32</stop>
</rule>
<rule>
<start>2006-1-1</start>
<timeUnit>month</timeUnit>
<timeLength>6</timeLength>
<stop>2009-12-31</stop>
</rule>
</job>
<job>
<id>job0002</id>
<workId>work0001</workId>
<name>GS01 </name>
<type>abedo</type>
<tag>mod09GA</tag>
<rule>
<start>2000-1-1</start>
<timeUnit>year</timeUnit>
<timeLength>1</timeLength>
<stop>2005-12-32</stop>
</rule>
<rule>
<start>2006-1-1</start>
<timeUnit>month</timeUnit>
<timeLength>6</timeLength>
<stop>2009-12-31</stop>
</rule>
</job>
</work>
</glass>
问题里面不就是例子吗,晕
展开
 我来答
lyf3175733
推荐于2016-09-12 · TA获得超过279个赞
知道答主
回答量:102
采纳率:0%
帮助的人:92.3万
展开全部
SaxReader reader = new SaxReader();
Document doc = reader.read(new File("class.xml"));
Element element = doc.getRootElement();//获取根元素

迭代器:取根元素下的子元素名称
Iterator<Element> iter = element.elementIterator();
while(iter.hashNext){
Element el = (Element)iter.next();
el.getName();//获取元素名称
el.getText();//获取元素值
}

//获取属性名称、值
Iterator<Attribute> iter1 = element.attributeIterator();
while(iter1.hashNext()){
Attribute el = (Attribute)iter1.next();
el.getName();el.getValue();//获取属性名称和值
}

如果取所有,则用递归取:
public void getInfo(Element root){
Iterator<Element> iter = root.getElementIterator();
while(iter.hashNext()){
Element element = (Element)iter.next();
getInfo(element);//自己调用自己 递归方法
}
}
panxinxyyg
2010-06-08 · TA获得超过115个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:106万
展开全部
给个例子:

xml文件:

<?xml version="1.0" encoding="gb2312"?>
<LOGINDATE>
<loginDate>2010-06-07 21:37:33</loginDate>
<orgId>4</orgId>
<orgName>萧山店</orgName>
</LOGINDATE>

java代码:

public static Map ReadXml(){
File file = new File(path);
Map map=null;
try {
if (file.exists()) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc=db.parse(new File(path));
NodeList nodeList = doc.getElementsByTagName("LOGINDATE");//跟节点
Node fatherNode = nodeList.item(0);
NodeList childNodes = fatherNode.getChildNodes();
map=new HashMap();
for (int j = 0; j < childNodes.getLength(); j++) {
Node childNode = childNodes.item(j);
// 如果这个节点属于Element ,再进行取值
if (childNode instanceof org.w3c.dom.Element) {
if(!childNode.getFirstChild().getNodeValue().equals(null)){
map.put(childNode.getNodeName(), childNode.getFirstChild().getNodeValue());
System.out.println(childNode.getNodeName()
+ ":" + childNode.getFirstChild().getNodeValue());
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

return map;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式