• 最简单的JAVA解析XML字符串方法


    引入 dom4j 包
    <dependency>
      <groupId>dom4j</groupId>
      <artifactId>dom4j</artifactId>
      <version>1.6.1</version>
    </dependency>

    比如阿里云视频转码服务的回调通知解析,代码如下:

    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import java.util.Iterator;
    
    public class DOMParser {
    
        public static void main(String[] args) {
            String strXML = "<?xml version="1.0" encoding="UTF-8"?> <Notification xmlns="http://mns.aliyuncs.com/doc/v1/"> <TopicOwner>1692545896541241</TopicOwner> <TopicName>MyTopic</TopicName> <Subscriber>1692545896541241</Subscriber> <SubscriptionName>bing-test3</SubscriptionName> <MessageId>C39FB8C345BBFBA8-1-1687F6FAADD-200000015</MessageId> <MessageMD5>CAA1E9F5E9F854ACD8297B100BF8CCF9</MessageMD5> <Message>{"jobId":"2384a4d89b1d4f1e869559e2ff8c9fad","requestId":"639D1D03-1557-4AD7-9AD7-691F02834516","Type":"Transcode","state":"Success","type":"Transcode","State":"Success","JobId":"2384a4d89b1d4f1e869559e2ff8c9fad","RequestId":"639D1D03-1557-4AD7-9AD7-691F02834516"}</Message> <PublishTime>1548326251229</PublishTime> </Notification>";
    
            Document doc = null;
            try {
                doc = DocumentHelper.parseText(strXML);
            } catch (DocumentException e) {
                e.printStackTrace();
            }
            Element root = doc.getRootElement();// 指向根节点
    
            Iterator it = root.elementIterator();
            while (it.hasNext()) {
                Element element = (Element) it.next();// 一个Item节点
                System.out.println(element.getName() + " : " + element.getTextTrim());
            }
        }
    }

    输出结果
    TopicOwner : 1692545896541241
    TopicName : MyTopic
    Subscriber : 1692545896541241
    SubscriptionName : bing-test3
    MessageId : C39FB8C345BBFBA8-1-1687F6FAADD-200000015
    MessageMD5 : CAA1E9F5E9F854ACD8297B100BF8CCF9
    Message : {"jobId":"2384a4d89b1d4f1e869559e2ff8c9fad","requestId":"639D1D03-1557-4AD7-9AD7-691F02834516","Type":"Transcode","state":"Success","type":"Transcode","State":"Success","JobId":"2384a4d89b1d4f1e869559e2ff8c9fad","RequestId":"639D1D03-1557-4AD7-9AD7-691F02834516"}
    PublishTime : 1548326251229

  • 相关阅读:
    ArrayList源码剖析
    Qt线程外使用Sleep
    malloc、calloc和realloc比较
    C++各大名库
    Qt 编译boost
    VC++ 设置控件显示文本的前景色、背景色以及字体
    std::map的操作:插入、修改、删除和遍历
    time.h文件中包含的几个函数使用时须注意事项
    赋值操作符和拷贝构造函数
    virtual析构函数的作用
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/java_dom4j.html
Copyright © 2020-2023  润新知