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;
        }
    
    }
  • 相关阅读:
    iOS NSNotificationCenter 最基本使用
    iOS SDK 从配置文件里读SDK。转化成class 可同时加载多个SDK
    NSString json 车NSDictionary
    在C#中使用.NET SDK创建控制
    推荐几款制作网页滚动动画的 JavaScript 库
    CSS选择器、优先级与匹配原理
    为ASP.NET控件加入快捷菜单
    如何使用ASP.NET开发基于推技术的聊天室?
    ASP.NET Web API queryString访问的一点总结
    ASP.net 控件实现数据级联
  • 原文地址:https://www.cnblogs.com/lijianda/p/11712670.html
Copyright © 2011-2022 走看看