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;
        }
    
    }
  • 相关阅读:
    js对select动态添加和删除OPTION
    文本框textarea实时提示还可以输入多少文字
    JavaScript中统计Textarea字数并提示还能输入的字符
    inupt textarea提示文字(点击消失,不输入恢复)
    inupt textarea提示文字(点击消失,不输入恢复)及限制字数
    Server.MapPath()获取本机绝对路径
    cocos基础教程(12)点击交互的三种处理
    cocos基础教程(9)声音和音效
    cocos进阶教程(2)多分辨率支持策略和原理
    cocos基础教程(10)纹理缓存技术
  • 原文地址:https://www.cnblogs.com/lijianda/p/11712670.html
Copyright © 2011-2022 走看看