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;
        }
    
    }
  • 相关阅读:
    理解jquery的$.extend()、$.fn和$.fn.extend()
    Angularjs,WebAPI 搭建一个简易权限管理系统
    ASP.NET MVC Boilerplate简介
    写jQuery插件
    给Asp.Net MVC及WebApi添加路由优先级
    Oracle数据库之开发PL/SQL子程序和包
    Git 1.9.5.msysgit.1
    快速解读GC日志(转)
    Git & Github 一页简明笔记(转)main
    用python3.x与mysql数据库构建简单的爬虫系统(转)
  • 原文地址:https://www.cnblogs.com/lijianda/p/11712670.html
Copyright © 2011-2022 走看看