DOM解析多级标签的xml文件

茉莉gsy 2012-11-28 07:57:30
如何用DOM来解析多级的XML文件呢,比如xml文件如下:
<xml>
<a>
<aa>aa</aa>
<aaa>aaa</aaa>
</a>
<b>
<bb>bb</bb>
<bbb>bbb</bbb>
</b>
</xml>


然后解析的时候我能够知道解析出来的aaa属于哪一个标签内容,同时我知道<a>标签内,总共有多少条记录等等,我需要取出这些标签来进行不同的操作,如<a>标签的内容我需要弄成radio,而对于<b>标签的我需要弄成下拉列表等。谢谢回答。
...全文
175 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingfuzhuzi1314 2012-11-29
  • 打赏
  • 举报
回复
多级话,如果你要全部获取,你的遍历根节点下面所有的,之后存入list里面,在来处理你的业务! public List readXML(String xml) throws JDOMException, IOException{ List<Map<String,String>> list=new ArrayList<Map<String,String>>(); Map<String,String> map=new HashMap<String,String>(); Document document = null; ByteArrayInputStream xmlStream = null; try{ xmlStream=new ByteArrayInputStream(xml.getBytes("gb2312")); } catch(UnsupportedEncodingException uee){ uee.printStackTrace(); } if(xmlStream!=null){ SAXBuilder saxBuilder=new SAXBuilder(); document=saxBuilder.build(xmlStream); Element root=document.getRootElement(); System.out.println(root.getName()); list=this.xmlToMap(root, list,map); } return list; } public List<Map<String,String>> xmlToMap(Element root,List<Map<String,String>> list,Map<String,String> map){ List children=root.getChildren(); Iterator it = children.iterator(); while(it.hasNext()){ Element child = (Element) it.next(); String name = child.getName(); System.out.println(name+"***"+child.getText()); // 如果有子节点,则递归调用 if (child.getChildren().size() > 0) { xmlToMap(child, list,map); }else{ if(child.getText()!=null && !child.getText().equals("") ){ map.put(name, child.getText()); } } list.add(map); } return list; }

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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