加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xpath解析含有命名空间别名的xml文件的示例代码

发布时间:2020-12-16 09:00:45 所属栏目:百科 来源:网络整理
导读:用xpath方式解析含有命名空间别名的xml文件的实例 public SDSPMainOutput parse3_3ReturnStr(String str) { SDSPMainOutput output = new SDSPMainOutput(); String returns = "?xml version="1.0" encoding="UTF-8"?" + "soapenv:Envelope xmlns:soapen

用xpath方式解析含有命名空间别名的xml文件的实例

public SDSPMainOutput parse3_3ReturnStr(String str) {
SDSPMainOutput output = new SDSPMainOutput();


String returns = "<?xml version="1.0" encoding="UTF-8"?>"
+ "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/""
+ " xmlns:ns1="http://mobilefeecalculation.check.csb.ideal.com">" + "<soapenv:Body>"
+ "<ns1:SDSPMainInputResponse>"
+ "<ns1:SDSPMainOutput>"
+ "<ns1:SDTransationId>wmh2015062510008012</ns1:SDTransationId>"
+ "<ns1:error_Code>0000</ns1:error_Code>"
+ "<ns1:error_Message>成功</ns1:error_Message>" + "<ns1:SiebelMessage>"
+ "<ns1:ListOfFee ns1:TotalAmount="1">"
+ "<ns1:PropertySet ns1:AdjType="2222" ns1:AdjValue="3333" ns1:ProdName="112" ns1:ProdNeedPayFlg="113" ns1:ProdNum="114" ns1:RePriceFlag="115" ns1:RootProdNum="116" ns1:SN="117" ns1:SPName="118" ns1:SPNeedPayFlg="119" ns1:SPNum="120" ns1:TaxName="124" ns1:TaxRate="125" ns1:TaxSysId="126" ns1:SPSource="123" ns1:SPShowFlg="122" ns1:SPReadOnlyFlg="121" ns1:EXT_ACCT_ITEM_ID="7" ns1:ORDER_ITEM_ID="110" ns1:ACCT_ITEM_TYPE_ID="1111" ns1:JT_TAX="18" ns1:JT_TAX_RATE="19" ns1:PAYMENT_METHOD_CD="111" ns1:CURRENCY="1666" ns1:ATTR_140000020="14444" ns1:ATTR_140000021="15555"/>"
+ "<ns1:PropertySet ns1:AdjType="2222" ns1:AdjValue="3333" ns1:ProdName="222" ns1:ProdNeedPayFlg="223" ns1:ProdNum="224" ns1:RePriceFlag="225" ns1:RootProdNum="226" ns1:SN="227" ns1:SPName="228" ns1:SPNeedPayFlg="229" ns1:SPNum="220" ns1:TaxName="224" ns1:TaxRate="225" ns1:TaxSysId="226" ns1:SPSource="223" ns1:SPShowFlg="222" ns1:SPReadOnlyFlg="221" ns1:EXT_ACCT_ITEM_ID="7" ns1:ORDER_ITEM_ID="210" ns1:ACCT_ITEM_TYPE_ID="2222" ns1:JT_TAX="28" ns1:JT_TAX_RATE="29" ns1:PAYMENT_METHOD_CD="211" ns1:CURRENCY="2666" ns1:ATTR_140000020="24444" ns1:ATTR_140000021="25555"/>"
+ "</ns1:ListOfFee>" + "</ns1:SiebelMessage>"
+ "</ns1:SDSPMainOutput>" + "</ns1:SDSPMainInputResponse>" + "</soapenv:Body>"
+ "</soapenv:Envelope>";

System.out.println("3-3返回值" + returns);

if(str!=null&&!"".equals(str)){
returns = str;
}

Map map = new HashMap();
map.put("soapenv","http://mobilefeecalculation.check.csb.ideal.com");
map.put("ns1","http://mobilefeecalculation.check.csb.ideal.com");


Document document = null;
try {

document = DocumentHelper.parseText(returns);
XPath x = document.createXPath("//ns1:SDSPMainInputResponse");
x.setNamespaceURIs(map);

} catch (DocumentException e1) {
e1.printStackTrace();
}
Iterator<Node> nodeIterator = document.selectNodes("//ns1:SDTransationId").iterator();

while (nodeIterator.hasNext()) {
Node node = nodeIterator.next();
System.out.println("SDTransationId:" + node.selectSingleNode("//ns1:SDTransationId").getStringValue());
}

String tid = document.selectSingleNode("//ns1:SDTransationId").getText();
String errorCode = document.selectSingleNode("//ns1:error_Code").getStringValue();
String errorMessage = document.selectSingleNode("//ns1:error_Message").getStringValue();

SiebelMessage siebelMessage = new SiebelMessage();
Node siebelMessageNode = document.selectSingleNode("//ns1:SiebelMessage");

Node listOfFeeNode = document.selectSingleNode("//ns1:ListOfFee");

String totalAmount = document.selectSingleNode("//attribute::ns1:TotalAmount").getStringValue();

List<Node> propertySetNodes = document.selectNodes("//ns1:PropertySet");

ListOfFee listOfFee = new ListOfFee();

PropertySet[] propertySet = new PropertySet[propertySetNodes.size()];

Node property=null;
for (int i = 0; i < propertySetNodes.size(); i++) {
property = propertySetNodes.get(i);

propertySet[i]=new PropertySet();
propertySet[i].setACCT_ITEM_TYPE_ID(property.selectSingleNode("attribute::ns1:ACCT_ITEM_TYPE_ID").getStringValue());

propertySet[i].setAdjType(property.selectSingleNode("attribute::ns1:AdjType").getStringValue());
propertySet[i].setAdjValue(property.selectSingleNode("attribute::ns1:AdjValue").getStringValue());
propertySet[i].setATTR_140000020(property.selectSingleNode("attribute::ns1:ATTR_140000020").getStringValue());
propertySet[i].setATTR_140000021(property.selectSingleNode("attribute::ns1:ATTR_140000021").getStringValue());

propertySet[i].setCURRENCY(property.selectSingleNode("attribute::ns1:CURRENCY").getStringValue());
propertySet[i].setEXT_ACCT_ITEM_ID(property.selectSingleNode("attribute::ns1:EXT_ACCT_ITEM_ID").getStringValue());
propertySet[i].setJT_TAX(property.selectSingleNode("attribute::ns1:JT_TAX").getStringValue());
propertySet[i].setJT_TAX_RATE(property.selectSingleNode("attribute::ns1:JT_TAX_RATE").getStringValue());
propertySet[i].setORDER_ITEM_ID(property.selectSingleNode("attribute::ns1:ORDER_ITEM_ID").getStringValue());

propertySet[i].setPAYMENT_METHOD_CD(property.selectSingleNode("attribute::ns1:PAYMENT_METHOD_CD").getStringValue());
propertySet[i].setProdName(property.selectSingleNode("attribute::ns1:ProdName").getStringValue());
propertySet[i].setProdNeedPayFlg(property.selectSingleNode("attribute::ns1:ProdNeedPayFlg").getStringValue());
propertySet[i].setProdNum(property.selectSingleNode("attribute::ns1:ProdNum").getStringValue());
propertySet[i].setRePriceFlag(property.selectSingleNode("attribute::ns1:RePriceFlag").getStringValue());

propertySet[i].setRootProdNum(property.selectSingleNode("attribute::ns1:RootProdNum").getStringValue());
propertySet[i].setSN(property.selectSingleNode("attribute::ns1:SN").getStringValue());
propertySet[i].setSPName(property.selectSingleNode("attribute::ns1:SPName").getStringValue());
propertySet[i].setSPNeedPayFlg(property.selectSingleNode("attribute::ns1:SPNeedPayFlg").getStringValue());
propertySet[i].setSPNum(property.selectSingleNode("attribute::ns1:SPNum").getStringValue());

propertySet[i].setSPReadOnlyFlg(property.selectSingleNode("attribute::ns1:SPReadOnlyFlg").getStringValue());
propertySet[i].setSPShowFlg(property.selectSingleNode("attribute::ns1:SPShowFlg").getStringValue());
propertySet[i].setSPSource(property.selectSingleNode("attribute::ns1:SPSource").getStringValue());
propertySet[i].setTaxName(property.selectSingleNode("attribute::ns1:TaxName").getStringValue());
propertySet[i].setTaxRate(property.selectSingleNode("attribute::ns1:TaxRate").getStringValue());

propertySet[i].setTaxSysId(property.selectSingleNode("attribute::ns1:TaxSysId").getStringValue());
//System.out.println(propertySet[i].getACCT_ITEM_TYPE_ID()+","+propertySet[i].getJT_TAX_RATE()+propertySet[i].getProdNum());
}

listOfFee.setPropertySet(propertySet);
listOfFee.setTotalAmount(totalAmount);

siebelMessage.setListOfFee(listOfFee);

String SDTransationId2 = document.selectSingleNode("//ns1:SDTransationId").getStringValue();

output.setError_Code(errorCode);
output.setError_Message(errorMessage);
output.setSiebelMessage(siebelMessage);

output.setSDTransationId(SDTransationId2);

return output; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读