java解析xml,求助。

狗阳 2014-05-22 10:08:50
问题是这样的xml含有命名空间,我在获取到docuemnt的根节点后 通过getchildren(“name”)方法去获取子节点list的时候获取不到,
我把命名空间去掉在获取就可以获取到。
xml 格式:
<project xmlns="http://www.xxxx.org">
<name id=“1”>aaa</name>
<name id=“2”>bbb</name>
<name id=“3”>ccc</name>
<data id="1">1</data>
<data id="2">2</data>
<data id="3">3</data>
</project>

请问想这样的xml应该怎么获取子节点。
我是这样写的:
Document doc = null;
SAXBuilder builder = new SAXBuilder();
doc = builder.build(new File(filePath));
element root = doc.getRootElement();
List<element> nameList = root.getChildren("name");
...全文
166 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2014-05-22
  • 打赏
  • 举报
回复
用2楼的方式dom4j完全没问题
S117 2014-05-22
  • 打赏
  • 举报
回复
这样应该可以吧

                SAXReader builder = new SAXReader();
		 Document doc = builder.read(new File(filePath));
		 Element rootElt = doc.getRootElement();
		 System.out.println("root : " + rootElt.getName());
		 List<Element> elements = rootElt.elements("name");
		 for(Element element : elements){
			 System.out.println("\t" + element.getName());
		 }
	}
paker_ma 2014-05-22
  • 打赏
  • 举报
回复
// 获取document文档 Document document = saxReader.read(inputXml); // 获取根节点 Element root = document.getRootElement(); // 遍历 for (Iterator i = root.elementIterator(); i.hasNext();) { // 获取下一级节点 Element nextnode = (Element) i.next(); if (nextnode.getName().equals("body")) {//body 就类似于你这里面的name节点 } }

67,549

社区成员

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

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