public Report getReportByXml(String xmlPath) { File file = new File(xmlPath); FileInputStream fis = null; SAXReader saxReader = new SAXReader(); Document doc = null; Report report = null; try { report = new Report(); fis = new FileInputStream(file); doc = saxReader.read(new InputStreamReader(fis, "UTF-8")); List<Element> listItemNet = doc.selectNodes("/root/net/item"); if(listItemNet !=null && listItemNet.size()>00){ List<Item> listNet = new ArrayList<Item>(); for(Element ele:listItemNet){ Item item = new Item(); item.setHost(ele.valueOf("@host")); item.setPort(ele.valueOf("@port")); listNet.add(item); } report.setListNet(listNet); } List<Element> listItemAutostart = doc.selectNodes("/root/autostart/item"); if(listItemAutostart != null && listItemAutostart.size()>0){ List<Item> listAutostart = new ArrayList<Item>(); for(Element ele:listItemAutostart){ Item item = new Item(); item.setStartpath(ele.valueOf("@startpath")); listAutostart.add(item); } report.setListAutostart(listAutostart); } List<Element> listItemReleasefile = doc.selectNodes("/root/releasefile/item"); if(listItemReleasefile != null && listItemReleasefile.size()>0){ List<Item> listReleasefile = new ArrayList<Item>(); for(Element ele:listItemReleasefile){ Item item = new Item(); item.setName(ele.valueOf("@name")); item.setLength(ele.valueOf("@length")); item.setMd5(ele.valueOf("@md5")); item.setFileproperty(ele.valueOf("@fileproperty")); listReleasefile.add(item); } report.setListReleaaseFile(listReleasefile); } int i = 1; List<Element> listItemBasicaction = doc.selectNodes("/root/basicaction/item"); if(listItemBasicaction != null && listItemBasicaction.size()>0){ List<Item> listBasicaction = new ArrayList<Item>(); for(Element ele:listItemBasicaction){ Item item = new Item(); item.setProcessname(ele.valueOf("@processname")); List<Element> listOperateBasic = doc.selectNodes("/root/basicaction/item["+i+"]/operate"); item.setOperateList(getOperate(listOperateBasic)); listBasicaction.add(item); i++; } report.setListBasicaction(listBasicaction); } int j=1; List<Element> listItemInjectaction = doc.selectNodes("/root/injectaction/item"); if(listItemInjectaction != null && listItemInjectaction.size()>0){ List<Item> listInjectaction = new ArrayList<Item>(); for(Element ele:listItemInjectaction){ Item item = new Item(); item.setProcessname(ele.valueOf("@processname")); List<Element> listOperateInject = doc.selectNodes("/root/injectaction/item["+j+"]/operate"); item.setOperateList(getOperate(listOperateInject)); listInjectaction.add(item); j++; } report.setListInjectaction(listInjectaction); } } catch (DocumentException e) { logger.error(e.getMessage()); } catch (FileNotFoundException e) { logger.error("xml is not exist! : "+xmlPath); } catch (IOException e) { logger.error(e.getMessage()); }finally{ try { if(fis != null){ fis.close(); } } catch (IOException e) { } } return report; }
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <root> <net> <item host="127.0.0.1" port="3306" /> <item host="www.baidu.com" port="8888" /> </net> <autostart> <item startpath="g:/hh.xml"/> <item startpath="c:/file.exe"/> </autostart> <releasefile> <item name="c:\windows\temp\scs1.tmp " length="" md5="" fileproperty="0"/> <item name="c:\windows\temp\scs2.tmp " length="" md5="" fileproperty="0"/> </releasefile> <basicaction> <item processname="c:\windows\system32\drwtsn32.exe"> <operate name="asdft" parameter="目标进程名:c:\windows\system32\ntvdm.exe"/> <operate name="对对对cddad" parameter="测试的文件名:d:\test\helloword.exe"/> </item> <item processname="d:\linux\system64\hyal64.exe"> <operate name="你多或少的线程context" parameter="测试的阿萨德发名:c:\windows\system32\ntvdm.exe"/> <operate name="拉动了房价阿里ddd" parameter="ad发放名:d:\test\helloword.exe"/> </item> </basicaction> <injectaction> <item processname="ninini"> <operate name="haohaohao" parameter="memememe" /> <operate name="aiaiaiaiai" parameter="lzlzlzlzlz" /> </item> <item processname="wowowo"> <operate name="zaizaizai" parameter="canshucashu" /> <operate name="nenenenen" parameter="parparpar" /> </item> </injectaction> </root>
相关推荐
dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中
简单利用java读取xml中的标签,也是写xml
包括解析xml文档方法,使用方法的数据包,xml文档格式的介绍,java与xml的绑定等
android移动开发需要解析XML。从tomcat下载得打数据,然后解析。
解析XML特殊字符方法有二种 XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符
介绍在标准的ExcelReader中,如果数据量较大,读取Excel会非常缓慢,并有可能造成内存溢出。因此针对大数据量的Excel,Hutool封装了event
dom4j-1.6.1.jar和SAXReader读取xml源代码
使用sax解析xml的源代码
//a[@id='b1'] 表示元素名称是a,在a上面有id属性,并且id的属性值是b1 使用dom4j支持xpath具体操作 默认的情况下,dom4j不支持xpath,如果想要在dom4j里面是有xpath, 第一步需要,引入支持xpath...
1.读取XML文件,获得document对象. SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); 2.解析XML形式的文本,得到document对象. String text = "<members></...
冰云总结的SaxReader 的用法 冰云总结的SaxReader 的用法
// 读取并解析XML文档 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read...
此工具类是基于Apache POI的用于读取大数据量Excel 07版后的表格文件,从而高效地读取到表格数据并以集合形式保存下来。 使用方式: List[]> list = new ArrayList[]>(); ExcelXlsxParser parser = new ...
这是SAXReader需要的两个jar包,包括dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar
SAX解析XML 原代码解疑 详细步骤 读取xml里的数据
使用SAXReader所需jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar 已准备好
dom4j-2.1.3 jaxen-1.1.6用于解析xml的第三方jar包
使用Sax技术读XML文档:SaxReaderXML.rar
Dom4j(SaxReader )开发详解,通过程序和步骤讲解,深入浅出的教你如何在项目中应用Dom4j
SAXReader reader = new SAXReader(); Document document = reader.read(conf); Element root = document.getRootElement(); Element chird = root.element(arg); if (chird != null) result = ...