博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dom4j解析复杂的xml文件
阅读量:5938 次
发布时间:2019-06-19

本文共 4235 字,大约阅读时间需要 14 分钟。

待解析的xml文件:

B
901061314
LTJHXYYCX01/XA-HWMACBTS529
蓝田局华胥电信营业厅CDMA基站/BTS529
BTS
HuaWei
HUAWEI BTS3900
3
HW401C
0.086
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(0)HECM
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(10)FAN
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(9)UPEU
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(7)CMPT
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(2)HCPM
0.308
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(2)CRFU
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(4)CRFU
290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(0)CRFU
0.086
0.044
0
成功

j用dom4j解析该xml文件

需要导入的jar包:import org.apache.log4j.Logger;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;//dom4j解析xml//创建SAXReader对象 readerSAXReader reader = new SAXReader();//因为我项目中的xml文件 是查出来的,类型是字符串类型,所以我们需要把字符串转换成xml文件String resultxml = broadBandResult.getReviceXML();//我拿到的字符串类型的返回报文                        Document document = DocumentHelper.parseText(resultxml); //将字符串转换成xml,具体转换 可以百度搜索 dom4j字符串转xml//获取文件的根节点Element root = document.getRootElement();String node1Name = "需展示的节点名称";//得到节点的值  /ResInfo/asset/assetcardno为需要得到哪个节点的路径//这里我要得到assetcardno节点的值
String node1text =  root.selectSingleNode("/ResInfo/asset/assetcardno").getText();String node2Name = "描述";
String node2text = root.selectSingleNode("/ResInfo/asset/comments").getText(); //因为项目需要拼接html ,这一部分大家可以略过不看 desc.append("
") .append("
") //得到containers节点 Node node1 = root.selectSingleNode("/ResInfo/containers"); //得到containers节点下边的子节点container,因为有多个container,所以用list集合接收 List
list = ((Element) node1).elements("container"); //循环这个集合 for (Element element : list) { String node13Name = "机框安装高度"; //得到container节点里面的shelfhight节点 Element node13 =element.element("shelfhight"); //得到shelfhight节点的值 String node13Text = node13.getText(); //拼接html desc.append("
  • ") .append("
    "); //得到container节点里面的cardinfos Element node14 =(Element) element.selectSingleNode("cardinfos"); if(node14 != null){ logger.error("===node14==="+node14); //得到cardinfos节点里面的cardinfo节点,因为cardinfos节点里面有多个cardinfo节点,所以用List集合接收 List
    childList2 =node14.elements("cardinfo"); logger.error("===childList2集合长度==="+childList2.size()); //循环childList2 集合 for (Element element2 : childList2) { String node15Name = "机框下的板卡拼装名称列表"; //得到cardinfo节点里面的cardname节点 Element node15 =element2.element("cardname"); //得到cardname节点的值 String node15Text = node15.getText(); // 拼接html desc.append("
    "); } } desc.append("
  • "); }

     这样就解析完了一个xml文件。。。。这只是我记录工作中碰到的问题,欢迎各位大神予以纠正指错

    转载于:https://www.cnblogs.com/wumingxuanji/p/9561163.html

    你可能感兴趣的文章
    Mac上基于Github搭建Hexo博客
    查看>>
    What does corn harvester involve?
    查看>>
    阿里云服务器ECS开放8080端口
    查看>>
    Centos7静默安装Oracle11g并设置开机自启
    查看>>
    某程序员上线原谅宝:不做接盘侠
    查看>>
    「BATJ面试系列」并发编程之synchronized实现原理
    查看>>
    前端常用排序详解
    查看>>
    Spring中实现监听的方法
    查看>>
    使用Tooltip会出现一个问题,如果行上出现复选框
    查看>>
    11.03T1 DP
    查看>>
    Java 代码安全(一) —— 避免用String储存敏感数据
    查看>>
    第二周 IP通信基础回顾
    查看>>
    gradle-4.1-all.zip
    查看>>
    P2924 [USACO08DEC]大栅栏Largest Fence
    查看>>
    jQuery操作table tr td
    查看>>
    工作总结:MFC自写排序算法(升序)
    查看>>
    螺旋队列问题之二
    查看>>
    扩展运算符和解构赋值的理解
    查看>>
    焦点不在input或textarea中,屏蔽回格按钮
    查看>>
    后缀数组(suffix array)详解
    查看>>