JAVA解析XML字符串方法

作者: adm 分类: java 发布时间: 2021-06-30
引入 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());

            Iterator iterator1 = element.elementIterator();//如果 还有节点继续循环
            while (iterator1.hasNext()){
                 Element stuChild = (Element) iterator1.next();
                 map.put(stuChild.getName(),stuChild.getStringValue());
                 System.out.println("节点名:"+stuChild.getName()+"---节点值:"+stuChild.getStringValue());
          }
} } }

输出结果

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!