soap格式的xml解析

sanfan0819 2013-06-07 01:58:35
<?xml version="1.0"?>
<soapenv:Envelope xmlns:rxas="http://schemas.datacontract.org/2004/07/RxAssystLib.Contracts.Data" xmlns:tem="http://tempuri.org/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/>
<soapenv:Body>
<tem:User>
<rxas:Password>Blackbox</rxas:Password>
<rxas:UserName>jm</rxas:UserName>
</tem:User>
</soapenv:Body>
</soapenv:Envelope>

这种格式的xml如何在后台解析得到username 和 password的值?使用dom4j 取不到值
...全文
256 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
木薯超人 2013-06-08
  • 打赏
  • 举报
回复
我尝试解析了一下

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.List;

public class test{
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws DocumentException {
		SAXReader saxReader = new SAXReader();
		String path = "D:/dom.xml";
		Document doc = saxReader.read(new File(path));
		Element root = doc.getRootElement();
		Element element = root.element("Body");
		for(Element Body : (List<Element>)element.elements("User")) {
			for(Element rusult_element : (List<Element>)Body.elements("Password")) {
				if(rusult_element.isTextOnly()) {
					System.out.println(" Password=" + rusult_element.getText());
				}
			}
			for(Element rusult_element : (List<Element>)Body.elements("UserName")) {
				if(rusult_element.isTextOnly()) {
					System.out.println(" UserName=" + rusult_element.getText());
				}
			}
		}
	}
}
解析SOAP时候<rxas:UserName>jm</rxas:UserName>不行 要用UserName这样子的
女雅乱 2013-06-07
  • 打赏
  • 举报
回复
很标准的一个envelope xml
sanfan0819 2013-06-07
  • 打赏
  • 举报
回复
使用dom4j可以取到值, 是我有个地方写错了。 map=new HashMap(); Document xmldoc=DocumentHelper.parseText(dataxml); Element root=xmldoc.getRootElement(); List<Element> list=root.elements(); for(int i=0; i<list.size();i++) { Element node=(Element)list.get(i); List list2=node.elements(); for(int j=0; j<list2.size();j++) { Element element = (Element) list2.get(j); map.put(element.getName(), element.getText()); for( Iterator iterInner = element.elementIterator(); iterInner.hasNext(); ) { Element elementInner = (Element) iterInner.next(); map.put(elementInner.getName(), elementInner.getText()); System.out.println(elementInner.getName()); } } }
Apache JMeter应用程序是开源软件,是一个 100% 纯 Java 应用程序,它对被测系统(测试静态资源、动态资源、web应用程序等)进行负载测试、压力测试、容量测试等多种性能测试。Apache JMeter 功能包括:能够加载和性能测试许多不同的应用程序/服务器/协议类型:Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)SOAP / REST WebservicesFTP文件传输协议Database via JDBCLDAPMessage-oriented middleware (MOM) via JMSMail - SMTP(S), POP3(S) and IMAP(S)Native commands or shell scriptsTCPJava Objects全功能测试IDE,允许快速测试计划记录(从浏览器或本机应用程序)、构建和调试;CLI 模式(命令行模式(以前​​称为非 GUI)/headless 模式)从任何Java兼容操作系统(Linux、Windows、Mac OSX 等)进行负载测试;一个完整且呈现的动态 HTML 报告;通过HTML、JSON、 XML、文本的响应格式中提取数据进行关联;完全可移植性和100%纯Java代码;完整多线程框架允许多个线程并发采样和不同线程组同时采样不同的函数;测试结果的缓存和离线分析/回放。高度可扩展的核心:可插拔采样器允许无限的测试能力脚本采样器(JSR223 兼容语言,如Groovy和 BeanShell)可以使用可插入计时器选择多个负载统计信息数据分析和可视化插件允许很大的可扩展性和个性化函数可用于为测试提供动态输入或提供数据操作通过适用于Maven、Gradle 和 Jenkins 的第三方开源库轻松持续集成。 本套课程内容:1.    JMeter概述2.    HTTPS协议简介3.    JMeter下载地址4.    JMeter软件安装5.    JMeter录制HTTPS协议步骤6.    Badboy录制脚本7.    手工编写脚本8.    项目实操:JMeter编写HTTPS协议脚本

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧