zoukankan      html  css  js  c++  java
  • java-xml解析

    1、XML转json,可以使用import org.json.XML;直接转换,但直接返回org.json.JSONObject到页面会出现错误,然后把org.json.JSONObject类型转换为alibaba类型json返回页面正常

    JSONObject object1 = new JSONObject();
    if (!StringUtils.isEmpty(result)) {
                    org.json.JSONObject orgJson = XML.toJSONObject(result);
                    jObject = JSONObject.parseObject(orgJson.toString());
                }
                retData.setCode(ReturnResponData.SUCCESSED);
                retData.setMsg("成功");
                retData.setData(jObject);

     2、xml字符串解析

    Document document = DocumentHelper.parseText(xml);
    Element rootElement = document.getRootElement();
    Iterator iterator = rootElement.elementIterator();
    while (iterator.hasNext()){
          Element element = (Element) iterator.next();
          String nodeName = element.getName();
          String nodeValue = element.getStringValue();
    }
    Document document = DocumentHelper.parseText(o[0].toString());
    Node node = document.selectSingleNode("root");
    if (node != null && node.hasContent()){
           String code = node.selectNodes("code").get(0).getText();
           if (code.equals("0")){
               sessionId = node.selectNodes("sessionId").get(0).getText();
           }
    }

    3、xml字符串转JavaBean对象

    JAXBContext jaxbContext = JAXBContext.newInstance(VehiclePassInfo.class);
    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
    VehiclePassInfo vehiclePassInfo = (VehiclePassInfo)unmarshaller.unmarshal(new StringReader(xml));

    出现问题:javax.xml.bind.UnmarshalException: 意外的元素 (uri:"", local:"ROOT")。所需元素为(none)

    解决方法:Java类中添加 @XmlRootElement(name = "ROOT")

      Java类:

    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name = "ROOT")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class VehiclePassInfo {
    
        /**
         * ID
         */
        @XmlElement(name = "KKBH")
        private String crossingId;
    
        public String getCrossingId() {
            return crossingId;
        }
    
        public void setCrossingId(String crossingId) {
            this.crossingId = crossingId;
        }
    
    }
  • 相关阅读:
    洛谷P2742 【模板】二维凸包
    计算几何笔记
    洛谷P1251 餐巾计划问题(最小费用最大流)
    洛谷P2762 太空飞行计划问题(最大权闭合图)
    洛谷P2764 最小路径覆盖问题(二分图)
    [置顶] Guava学习之ArrayListMultimap
    sphinx coreseek SetSortMode(SPH_SORT_ATTR_ASC, '') 对float 排序设置bug
    magento 修改 paypal order product name
    硬盘“坏了”怎么办
    能够兼容ViewPager的ScrollView
  • 原文地址:https://www.cnblogs.com/lijianda/p/11712670.html
Copyright © 2011-2022 走看看