记:使用DefaultXPath解析soap返回的XML

使用soap请求服务后返回xml格式的内容,使用DefaultXPath来解析获取数据。

XPath用于在 XML 文档中通过元素和属性进行导航,并对元素和属性进行遍历,它可以方便开发者抓起文档中需要的东西。

org.dom4j.Document doc = org.dom4j.DocumentHelper.parseText(result);
			DefaultXPath xpath = new DefaultXPath("//ExecCmdReturn");
			xpath.setNamespaceURIs(Collections.singletonMap("ns1",
					"iptv"));
			List list = xpath.selectNodes(doc);
			Iterator iterator = list.iterator();
//			System.out.println(list.size());
			while (iterator.hasNext()) {
				org.dom4j.Element resultElm = (org.dom4j.Element) iterator.next();
				List<org.dom4j.Element> eList = resultElm.elements();//获取ExecCmdReturn下面的所有子节点
				for (int i = 0; i < eList.size(); i++) {
					org.dom4j.Element e = eList.get(i);
					String value = e.getStringValue();
					System.out.println("name: "+e.getName()+" value: "+value);
					if (e.getName().equalsIgnoreCase("Result")) {
						Result = value;
					}else if (e.getName().equalsIgnoreCase("ErrorDescription")) {
						ErrorDescription = value;
					}
				}
			}

1、DefaultXPath xpath = new DefaultXPath("//ExecCmdReturn");

填入的内容为获取该标签下面的内容,如果下面还有子标签,用resultElm.elements()获取ExecCmdReturn下面的所有子节点

2、xpath.setNamespaceURIs(Collections.singletonMap("ns1", "iptv"));

改方法为设置xml里的命名空间,一般都是头标签里的xmlns中ns1内容或ing内容。例:

Collections.singletonMap("ing","http://IngestAssetService.homed.ipanel.cn")

"ns1", "iptv"

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值