我从SOAP消息得到以下响应。我需要读取REQUEST_STATUS标记和RESULT标记中的值,并将其放在数据表中以更新数据库中的表。
请帮助我,因为我是第一次这样做。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CalculationResponse xmlns="http://www.someurl.com/">
<OUTPUT>
<REQUEST_STATUS>
<IS_SUCCESS>true</IS_SUCCESS>
<IS_PARTIAL_SUCCESS>true</IS_PARTIAL_SUCCESS>
</REQUEST_STATUS>
<RESULT>
<Value>
<inset1>1<inset1>
</Value>
<Value>
<inset2>2<inset2>
</Value>
</RESULT>....
我试过C#代码:
XDocument doc = XDocument.Load(Environment.CurrentDirectory + "\\out.xml");
XNamespace ns = @"http://www.someurl.com/";
bool validation = false;
var root = doc.Descendants("CalculationResponse").Elements("OUTPUT").Elements("REQUEST_STATUS");
var valuestr = from r in root.Elements("IS_SUCCESS")
select r.Value;
validation = (valuestr.ToString()=="true")?true:false;
我总是得到valuestr在集合中没有结果。
答案 0 :(得分:0)
以下是我要实现的代码:
C#代码:
XNamespace ns = @"http://www.someurl.com";
bool validation = false;
var parent = doc.Root.Descendants(ns + "CalculationResponse").Descendants(ns + "OUTPUT");
var valuestr = (from r in parent.Descendants(ns + "REQUEST_STATUS").Descendants(ns + "IS_SUCCESS")
select r.Value).ToList();
validation = (valuestr[0] == "true") ? true : false;