java使用dom4j解析xml文件

硅谷探秘者 3245 0 0

引入pom文件

<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.0.0</version>
</dependency>


需要解析的xml文件如下:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
    <TuitionViewResponse xmlns="http://www.szhtkj.com.cn/">
      <TuitionViewResult>
        <ReturnCode>00000</ReturnCode>
        <ReturnMsg>查询成功</ReturnMsg>
        <Xh>xxxxxxxxxxxx</Xh>
        <Xm>xxx</Xm>
        <Content>
          <Info>
            <Sfqjdm>2016</Sfqjdm>
            <Sfqjmc>2016</Sfqjmc>
            <Sfxmdm>012002</Sfxmdm>
          </Info>
          <Info>
            <Sfqjdm>2016</Sfqjdm>
            <Sfqjmc>2016</Sfqjmc>
            <Sfxmdm>013</Sfxmdm>
          </Info>
           </Content>
      </TuitionViewResult>
    </TuitionViewResponse>
  </soap:Body>
</soap:Envelope>


为了方便下方测试代码直接将xml内容用String储存

package com.dzqc.yx.dom;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Dom4jTest {
	public static void main(String[] args) {
		String s="<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" + 
				"  <soap:Body>\r\n" + 
				"    <TuitionViewResponse xmlns=\"http://www.szhtkj.com.cn/\">\r\n" + 
				"      <TuitionViewResult>\r\n" + 
				"        <ReturnCode>00000</ReturnCode>\r\n" + 
				"        <ReturnMsg>查询成功</ReturnMsg>\r\n" + 
				"        <Xh>xxxxxxxxxxxx</Xh>\r\n" + 
				"        <Xm>xxx</Xm>\r\n" + 
				"        <Content>\r\n" + 
				"          <Info>\r\n" + 
				"            <Sfqjdm>2016</Sfqjdm>\r\n" + 
				"            <Sfqjmc>2016</Sfqjmc>\r\n" + 
				"            <Sfxmdm>012002</Sfxmdm>\r\n" + 
				"          </Info>\r\n" + 
				"          <Info>\r\n" + 
				"            <Sfqjdm>2016</Sfqjdm>\r\n" + 
				"            <Sfqjmc>2016</Sfqjmc>\r\n" + 
				"            <Sfxmdm>013</Sfxmdm>\r\n" + 
				"          </Info>\r\n" + 
				"           </Content>\r\n" + 
				"      </TuitionViewResult>\r\n" + 
				"    </TuitionViewResponse>\r\n" + 
				"  </soap:Body>\r\n" + 
				"</soap:Envelope>";
		getXmlAttribute(s);
	}
	public static void getXmlAttribute(String soap) {
		try {
			Document document = DocumentHelper.parseText(soap);
			Element envelope = document.getRootElement();
			System.out.println(envelope.getName());
			Element body=envelope.element("Body");
			System.out.println("\t"+body.getName());
			Element tuitionViewResponse=body.element("TuitionViewResponse");
			System.out.println("\t\t"+tuitionViewResponse.getName());
			Element tuitionViewResult=tuitionViewResponse.element("TuitionViewResult");
			System.out.println("\t\t\t"+tuitionViewResult.getName());
			Element returnCode=tuitionViewResult.element("ReturnCode");
			System.out.println("\t\t\t\t"+returnCode.getName()+" :<"+returnCode.getTextTrim()+">");
			Element returnMsg=tuitionViewResult.element("ReturnMsg");
			System.out.println("\t\t\t\t"+returnMsg.getName()+" :<"+returnMsg.getTextTrim()+">");
			Element xh=tuitionViewResult.element("Xh");
			System.out.println("\t\t\t\t"+xh.getName()+" :<"+xh.getTextTrim()+">");
			Element xm=tuitionViewResult.element("Xm");
			System.out.println("\t\t\t\t"+xm.getName()+" :<"+xm.getTextTrim()+">");
			
			Element content=tuitionViewResult.element("Content");
			List<Element> infos=content.elements("Info");
			for(Element info:infos) {
				System.out.println("\t\t\t\t\t"+info.getName());
				Element sfqjdm = info.element("Sfqjdm");
				System.out.println("\t\t\t\t\t\t"+sfqjdm.getName()+" :<"+sfqjdm.getTextTrim()+">");
				Element sfqjmc = info.element("Sfqjmc");
				System.out.println("\t\t\t\t\t\t"+sfqjmc.getName()+" :<"+sfqjmc.getTextTrim()+">");
				Element sfxmdm = info.element("Sfxmdm");
				System.out.println("\t\t\t\t\t\t"+sfxmdm.getName()+" :<"+sfxmdm.getTextTrim()+">");
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
    }
}


解析输出结果如下

Envelope
	Body
		TuitionViewResponse
			TuitionViewResult
				ReturnCode :<00000>
				ReturnMsg :<查询成功>
				Xh :<xxxxxxxxxxxx>
				Xm :<xxx>
					Info
						Sfqjdm :<2016>
						Sfqjmc :<2016>
						Sfxmdm :<012002>
					Info
						Sfqjdm :<2016>
						Sfqjmc :<2016>
						Sfxmdm :<013>



评论区
请写下您的评论...
暂无评论...
猜你喜欢
java基础 1249 核心类ZipInputStream的api档请参考:https://nowjava.com/docs/java-api-11/java.base/java/util/zip
minio 2656 创建buckets 创建serviceaccounts java上传 maven依赖: dependency groupIdio.minio/groupId
weblog 2765 java使easypoi导出并下载excel简单导出测试如图:一、pomdependencygroupIdcn.afterturn/groupIdartifactIdeasypoi
java基础 1247 核心类ZipOutputStream的api档请参考:https://nowjava.com/docs/java-api-11/java.base/java/util/zip
工具 2670 pom依赖dependencygroupIdcommons-net/groupIdartifactIdcommons-net/artifactIdversion3.6/version/dependencyFTP服务类packageclub.jiajiajia.bulider.service;importjava.io.IOException;importjava.io.InputStream;im
java基础 7093 一、获取系统临时目录二、java的系统属性有哪些File.createTempFile创建临时一、获取系统临时目录通过java的系统属性获取Stringtmpdir
算法基础 2008 前端项目正式发布时一般需要混淆压缩js、css等,一方面压缩能够使体积更小,更多的节约网络io资源,另一方面能避免被人读懂你的代码!!!!!!工具可以使uglifyjs2。安装通过npm安
minio 2042 rclone下载地址:https://rclone.org/downloads/ 包: unziprclone-v1.59.0-linux-amd64.zip cdcdrclone
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1 2024-08  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript 加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。