dom4j 解析

jiekou0704 2014-03-19 04:47:03
<book>
<item>
<name_zh></name_zh>
</item>
<item>
<name_en></name_en>
</item>
<item>
<name_jp></name_jp>
</item>
</book>

如上xml。。
我想要得到book下各个item 下面的子节点中的值,,一时间想不到啥好方法。各位高手帮忙看看。。。。
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2014-03-19
  • 打赏
  • 举报
回复
引用 2 楼 jiekou0704 的回复:
[quote=引用 1 楼 suciver 的回复:]

String xml="<book><item><name_zh>gfd</name_zh></item><item><name_en>hgf</name_en></item><item><name_jp>shfj</name_jp></item></book>";
		Document doc=DocumentHelper.parseText(xml);
		List<Element> list=doc.selectNodes("/book//item/*");
		for(Element item:list){
			System.out.println(item.getText());
		}
如果是 <item> <name_zh></name_zh> <price></price> </item> 我只要name_xx 这个节点的元素不要其他元素。如果是迭代的话就全部set进去了。[/quote]

		String xml="<book><item><name_zh>gfd</name_zh><price>1649</price></item><item><name_en>hgf</name_en><price>9879</price></item><item><name_jp>shfj</name_jp><price>9412</price></item></book>";
		Document doc=DocumentHelper.parseText(xml);
		List<Element> list=doc.selectNodes("/book//item/*[starts-with(name(),'name')]");
		for(Element item:list){
			System.out.println(item.getText());
		}
木鱼121 2014-03-19
  • 打赏
  • 举报
回复
package com.easymap.common; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class StaticReadXml { public static DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); public static DocumentBuilder db=null; public static Document d=null; public static String fileNameString = ""; //根据节点名称读取值 public static String ReadValue(String node) { String value=""; try { db=dbf.newDocumentBuilder(); fileNameString = ReadXml.class.getResource("/config.xml").getPath(); d=db.parse(fileNameString); Element root=d.getDocumentElement(); //获得指定的节点对象 NodeList dl = root.getElementsByTagName(node); if(dl.getLength()==1){ Element e = (Element)dl.item(0); value = e.getFirstChild().getNodeValue(); } } catch (Exception e) { } return value; } }
jiekou0704 2014-03-19
  • 打赏
  • 举报
回复
引用 1 楼 suciver 的回复:

String xml="<book><item><name_zh>gfd</name_zh></item><item><name_en>hgf</name_en></item><item><name_jp>shfj</name_jp></item></book>";
		Document doc=DocumentHelper.parseText(xml);
		List<Element> list=doc.selectNodes("/book//item/*");
		for(Element item:list){
			System.out.println(item.getText());
		}
如果是 <item> <name_zh></name_zh> <price></price> </item> 我只要name_xx 这个节点的元素不要其他元素。如果是迭代的话就全部set进去了。
suciver 2014-03-19
  • 打赏
  • 举报
回复

String xml="<book><item><name_zh>gfd</name_zh></item><item><name_en>hgf</name_en></item><item><name_jp>shfj</name_jp></item></book>";
		Document doc=DocumentHelper.parseText(xml);
		List<Element> list=doc.selectNodes("/book//item/*");
		for(Element item:list){
			System.out.println(item.getText());
		}

67,516

社区成员

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

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