java使用dom4j解析xml文件

硅谷探秘者 2336 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基础 192 核心类ZipInputStream的api档请参考:https://nowjava.com/docs/java-api-11/java.base/java/util/zip
weblog 1414 java使easypoi导出并下载excel简单导出测试如图:一、pomdependencygroupIdcn.afterturn/groupIdartifactIdeasypoi
java基础 202 核心类ZipOutputStream的api档请参考:https://nowjava.com/docs/java-api-11/java.base/java/util/zip
工具 1671 pom依赖dependencygroupIdcommons-net/groupIdartifactIdcommons-net/artifactIdversion3.6/version/dependencyFTP服务类packageclub.jiajiajia.bulider.service;importjava.io.IOException;importjava.io.InputStream;im
算法基础 355 前端项目正式发布时一般需要混淆压缩js、css等,一方面压缩能够使体积更小,更多的节约网络io资源,另一方面能避免被人读懂你的代码!!!!!!工具可以使uglifyjs2。安装通过npm安
java基础 463 一、获取系统临时目录二、java的系统属性有哪些File.createTempFile创建临时一、获取系统临时目录通过java的系统属性获取Stringtmpdir
算法基础 249 安装node第一步依然是安装node,下载node.js安装,并安装:https://nodejs.org/en/全局安装clean-cssnpminstall-gclean-css局部安装
算法基础 670 什么是jxlsjxls是一个简单的、轻量级的excel导出库,使特定的标记在excel模板中来定义输出格式和布局。其实java中成熟的excel导出工具有pol、jxl,但他们都是使java
归档
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
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived
目录
祝愿神州十三飞行乘组平安归来