当前位置:   article > 正文

dom4j解析xml字符串(报文)_element root = doc.getrootelement()

element root = doc.getrootelement()

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <DATA>
  3. <ENTITY>
  4. <FCCODE>1001</FCCODE>
  5. <MTCODE>SDSD</MTCODE>
  6. <CURRSTOCK>1234566</CURRSTOCK>
  7. <UPLOADTIME>2016-08-10 15:26:14</UPLOADTIME>
  8. </ENTITY>
  9. <ENTITY>
  10. <FCCODE>1002</FCCODE>
  11. <MTCODE>GRDFF</MTCODE>
  12. <CURRSTOCK>L6T7824SXGN175448</CURRSTOCK>
  13. <UPLOADTIME>2016-08-10 15:26:14</UPLOADTIME>
  14. </ENTITY>
  15. </DATA>


在dom4j的API中, xml文件下的所有节点都是elment,无论是跟节点还是子元素节点

Element root = doc.getRootElement();  、//获取根节点,即DATA

List<Element> elements  = root.elements();  //   //获取根节点下的所有子元素  ,即所有的ENTITY
// 遍历所有子元素,即遍历出单个的一个个ENTITY
for(Element element:elements) {     

  遍历出每个ENTITY里面的子元素,.getTextTrim()---这个方法是得到元素的内容,将他们放到list中

  for(Iterator<Element> it = element.elementIterator();it.hasNext();){
                    Element e = it.next();
                    list.add(e.getTextTrim());

}
特别说明,attribute()这个方法是表示某个元素的属性,如<ENTITY  id='aaa' name='aaa'>,id就是第一个属性,name是他的第二个属性,还有attributes(),得到所有的属性集合


具体解析的代码如下,下面的代码是调用别人的webservice,然后穿回来的xml报文,将他解析,然后读取其中属性的内容讲他存入数据库

需要自己建对用属性的表和实体类

  1. public static List<EngineLineStock> xmlStrToElsList(String xmlStr) throws Exception {
  2. List<Object> list=new ArrayList<Object>();
  3. List<EngineLineStock> elsList=new ArrayList<EngineLineStock>();
  4. Map<String, Object> map = new LinkedHashMap<String, Object>();
  5. //将xml格式的字符串转换成Document对象
  6. Document doc = DocumentHelper.parseText(xmlStr);
  7. //获取根节点
  8. Element root = doc.getRootElement();
  9. //获取根节点下的所有子元素
  10. List<Element> elements = root.elements();
  11. //循环所有子元素
  12. if(elements != null && elements.size() > 0) {
  13. for(Element element:elements) {
  14. for(Iterator<Element> it = element.elementIterator();it.hasNext();){
  15. Element e = it.next();
  16. list.add(e.getTextTrim());
  17. }
  18. EngineLineStock s=new EngineLineStock();
  19. s.setFcCode((String) list.get(0));
  20. s.setMtCode((String) list.get(1));
  21. s.setCurrStock((String) list.get(2));
  22. s.setUploadTime((String) list.get(3));
  23. elsList.add(s);
  24. list.clear();
  25. }
  26. }
  27. return elsList;
  28. }
  1. public APIResponse<String> insertELS() throws Exception{
  2. String xmlStr="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
  3. "<DATA>"+
  4. "<ENTITY>"+
  5. "<FCCODE>1001</FCCODE>"+
  6. "<MTCODE>SDSD</MTCODE>"+
  7. "<CURRSTOCK>1234566</CURRSTOCK>"+
  8. "<UPLOADTIME>2016-08-10 15:26:14</UPLOADTIME>"+
  9. "</ENTITY>"+
  10. "<ENTITY>"+
  11. "<FCCODE>1002</FCCODE>"+
  12. "<MTCODE>dfgb</MTCODE>"+
  13. "<CURRSTOCK>545435</CURRSTOCK>"+
  14. "<UPLOADTIME>2016-08-10 15:26:14</UPLOADTIME>"+
  15. "</ENTITY>"+
  16. "</DATA>";
  17. List<EngineLineStock> elsList=ParseXml.xmlStrToElsList(xmlStr);
  18. for(EngineLineStock els:elsList){
  19. engineLineStockService.insertEngineLineStock(els);
  20. }
  21. return APIResponse.success("成功");
  22. }




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/817707
推荐阅读