記:使用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"

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章