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;
    }

}

 

posted on 2019-10-21 12:03  LJD泊水  阅读(1479)  评论(0编辑  收藏  举报