java dom4j解析xml实例
java利用dom4j解析xml 需要的jar包:
dom4j官方网站在 http://www.dom4j.org/
下载dom4j-1.6.1.zip
解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar(如果不导入这个架包程序可以执行出结果,但最后会报异常)
将相关jar包引入后,实际解析操作如下:
1.要解析的xml文件data.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?xml version= "1.0" encoding= "UTF-8" ?> <ReturnInfo> <userlist> <item index= "1" level= "60" nickname= "凄惨的老生" country= "金" weiwang= "136929" /> <item index= "2" level= "85" nickname= "哭泣的至尊宝" country= "金" weiwang= "97490" /> <item index= "3" level= "85" nickname= "老公" country= "金" weiwang= "91103" /> <item index= "4" level= "78" nickname= "冉闵" country= "金" weiwang= "82828" /> <item index= "5" level= "55" nickname= "erggh" country= "金" weiwang= "77440" /> <item index= "6" level= "60" nickname= "孤峰" country= "金" weiwang= "67821" /> <item index= "7" level= "60" nickname= "乱世" country= "金" weiwang= "67675" /> <item index= "8" level= "62" nickname= "叛逆之神" country= "金" weiwang= "61839" /> <item index= "9" level= "60" nickname= "双乔主人" country= "金" weiwang= "61647" /> <item index= "10" level= "60" nickname= "视觉效果" country= "金" weiwang= "50200" /> <item index= "11" level= "60" nickname= "鬼鬼" country= "金" weiwang= "49537" /> <item index= "12" level= "59" nickname= "狂龙在天" country= "金" weiwang= "46687" /> <item index= "13" level= "60" nickname= "小子" country= "金" weiwang= "46152" /> <item index= "14" level= "52" nickname= "zzy" country= "金" weiwang= "39017" /> <item index= "15" level= "53" nickname= "ycf" country= "金" weiwang= "30333" /> <item index= "16" level= "52" nickname= "无界之魂" country= "金" weiwang= "20294" /> <item index= "17" level= "42" nickname= "刀锋狼" country= "金" weiwang= "18842" /> <item index= "18" level= "60" nickname= "mnbvc" country= "金" weiwang= "18102" /> <item index= "19" level= "41" nickname= "赢政" country= "金" weiwang= "16331" /> <item index= "20" level= "52" nickname= "徐匡胤" country= "金" weiwang= "16156" /> </userlist> </ReturnInfo> |
2、具体解析程序如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package demo4; import java.io.File; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class TestJava { public static void main(String args[]) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read( new File( "D:/data.xml" )); Element rootElm = document.getRootElement(); Element root1Elm = rootElm.element( "userlist" ); List nodes = root1Elm.elements( "item" ); for (Iterator it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); System.out.println( "index:" + elm.attributeValue( "index" ) + " level:" + elm.attributeValue( "level" ) + " nickname:" + elm.attributeValue( "nickname" ) + " country:" + elm.attributeValue( "country" ) + " weiwang:" + elm.attributeValue( "weiwang" )); } try { Document doc = reader.read( new File( "D:/data.xml" )); List projects = doc.selectNodes( "ReturnInfo/userlist/item" ); Iterator it = projects.iterator(); while (it.hasNext()) { Element elm = (Element) it.next(); System.out.println( "index:" + elm.attributeValue( "index" ) + " level:" + elm.attributeValue( "level" ) + " nickname:" + elm.attributeValue( "nickname" ) + " country:" + elm.attributeValue( "country" ) + " weiwang:" + elm.attributeValue( "weiwang" )); } } catch (Exception ex) { ex.printStackTrace(); } } } |
3、运行结果如下图所示:
<1>、jaxen-1.1-beta-7.jar架包导入后不报异常,正常得到结果:
<2>、jaxen-1.1-beta-7.jar架包不导入后报异常,但也能得到结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix