soap格式的xml解析

1 篇文章 0 订阅
<?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 取不到值
             次浏览         
3 个回答

--------------------------------------

使用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());
}
}
}

--------------------------------------

很标准的一个envelope xml                                     

--------------------------------------

我尝试解析了一下
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());				}			}		}	}}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值