C# 循环SOAP结果的WCF
我试图从soap中获取所有ax21:responseBean的响应,但我的代码只获取最后一个插入的响应bean 我的代码如下C# 循环SOAP结果的WCF,c#,api,wcf,soap,soapui,C#,Api,Wcf,Soap,Soapui,我试图从soap中获取所有ax21:responseBean的响应,但我的代码只获取最后一个插入的响应bean 我的代码如下 XmlNodeList xnList = document.SelectNodes("//ns:return", manager); int nodes = xnList.Count; foreach (XmlNode xn in xnList) { if (xn["ax21:resultText"].Inn
XmlNodeList xnList = document.SelectNodes("//ns:return", manager);
int nodes = xnList.Count;
foreach (XmlNode xn in xnList)
{
if (xn["ax21:resultText"].InnerText == "Successful")
{
XmlNodeList xnList1 = document.SelectNodes("//ax21:responseBean", manager);
int nodes1 = xnList1.Count;
foreach (XmlNode xn1 in xnList1)
{
if (xn1["ax21:creditTokenName"].InnerText == "FreeMoney")
{
ct.Status = "True";
ct.creditTokenName = xn1["ax21:creditTokenName"].InnerText;
ct.uniqueTokenID = xn1["ax21:uniqueTokenID"].InnerText;
}
else
{
ct.Status = "False";
ct.creditTokenName = "Null";
ct.uniqueTokenID = "Null";
}
}
} else
{
ct.Status = "False";
}
}
soapui返回值
<ns:return xsi:type="ax21:GetCreditTokensResponse" xmlns:ax21="http://beans.webservice.CSI.omvia.convergys.com/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ax21:responseBean xsi:type="ax21:GetCreditTokenResponseBean">
<ax21:allocationTime>2017-07-14T10:30:00.000+00:00</ax21:allocationTime>
<ax21:creditTokenName>FreeMoney</ax21:creditTokenName>
<ax21:creditTokenType>M</ax21:creditTokenType>
<ax21:cumulativeFlag>false</ax21:cumulativeFlag>
<ax21:endTime>2017-07-15T10:30:00.000+00:00</ax21:endTime>
<ax21:originalValue>2.5</ax21:originalValue>
<ax21:promotionName>Default Campaign</ax21:promotionName>
<ax21:recurCost>0.0</ax21:recurCost>
<ax21:recurDate xsi:nil="true"/>
<ax21:recurFlag>false</ax21:recurFlag>
<ax21:recurInterval></ax21:recurInterval>
<ax21:recurValue>0.0</ax21:recurValue>
<ax21:startTime>2017-07-14T10:29:00.000+00:00</ax21:startTime>
<ax21:uniqueTokenID>4574332</ax21:uniqueTokenID>
<ax21:value>2.5</ax21:value>
</ax21:responseBean>
<ax21:responseBean xsi:type="ax21:GetCreditTokenResponseBean">
<ax21:allocationTime>2017-07-14T11:01:00.000+00:00</ax21:allocationTime>
<ax21:creditTokenName>FreeMoney</ax21:creditTokenName>
<ax21:creditTokenType>M</ax21:creditTokenType>
<ax21:cumulativeFlag>false</ax21:cumulativeFlag>
<ax21:endTime>2017-07-18T09:20:00.000+00:00</ax21:endTime>
<ax21:originalValue>10.0</ax21:originalValue>
<ax21:promotionName>0</ax21:promotionName>
<ax21:recurCost>0.0</ax21:recurCost>
<ax21:recurDate xsi:nil="true"/>
<ax21:recurFlag>false</ax21:recurFlag>
<ax21:recurInterval>0</ax21:recurInterval>
<ax21:recurValue>0.0</ax21:recurValue>
<ax21:startTime>2017-07-18T09:20:00.000+00:00</ax21:startTime>
<ax21:uniqueTokenID>4574541</ax21:uniqueTokenID>
<ax21:value>10.0</ax21:value>
</ax21:responseBean>
<ax21:resultCode>0</ax21:resultCode>
<ax21:resultText>Successful</ax21:resultText>
</ns:return>
2017-07-14T10:30:00.000+00:00
免费的
M
假的
2017-07-15T10:30:00.000+00:00
2.5
默认活动
0
假的
0
2017-07-14T10:29:00.000+00:00
4574332
2.5
2017-07-14T11:01:00.000+00:00
免费的
M
假的
2017-07-18T09:20:00.000+00:00
10
0
0
假的
0
0
2017-07-18T09:20:00.000+00:00
4574541
10
0
成功的
ns:return和ns:responseBean使我能够以XML格式获取最后一次插入的结果。这在邮递员身上很管用,但是,我对返回所有给出的结果感兴趣
<CreditToken xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Status>True</Status>
<uniqueTokenID>4574541</uniqueTokenID>
<creditTokenName>FreeMoney</creditTokenName>
</CreditToken>
真的
4574541
免费的
这是我的返回XML值您可以发布您正在使用的响应的屏蔽版本吗?验证您的代码部分是否正确会很有帮助。也张贴完整的代码。xnList的定义是什么?@canpan14请检查我的更新代码FYILooks,就像xml模式有问题一样。我得到的错误是ns:return没有绑定(使用任何在线xml验证器,您都会得到相同的结果)。不确定这是否是您的错误的原因。因为我试着把它装进去,所以现在就把它指出来。因为它看起来显然是正确的,这可能是因为我试图调用某个模式/文件或任何我无法命中的东西。或者,如果您也看到它,那么首先文件有问题。@canpan14检查我对上面编辑的代码的返回。我只需要返回多个响应。这不是因为您正在设置ct。在for循环中有什么吗?因此,无论您在前面的循环中设置了什么,都将被最后一个循环覆盖。