我的肥皂反应在下面很安静。<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:doCommandResponse xmlns:ns2="http://soap.inf.hexing.cn"> <return><?xml version="1.0" encoding="UTF-8"?><ResponseMessage xmlns="http://iec.ch/TC57/2011/schema/message" xmlns:m="http://iec.ch/TC57/2011/MeterReadings#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://iec.ch/TC57/2011/schema/message Message.xsd"> <Header> <Verb>created</Verb> <Noun>MeterReadings</Noun> <Timestamp>2019-03-31T15:54:12+04:30</Timestamp> <Source>HES_BASE</Source> <AsyncReplyFlag>true</AsyncReplyFlag><ReplyAddress>http://192.168.15.2:8090/HES/services/DoCommandRequest?wsdl</ReplyAddress><AckRequired>true</AckRequired> <User> <UserID>abc</UserID> </User><Property> <Name>password</Name> <Value>2222</Value> </Property> <MessageID>2AB290AE-5DBC-414D-8C5D-70836514E736</MessageID> <CorrelationID>String</CorrelationID></Header><Reply><Result>OK</Result><Error><code>0.0</code></Error></Reply><Payload><m:MeterReadings><m:MeterReading><m:valuesInterval> <m:end>2019-03-31T00:00:00+04:30</m:end> <m:start>2019-03-01T00:00:00+04:30</m:start> </m:valuesInterval> <m:Meter> <m:Names> <m:name>37030298060</m:name> <m:NameType> <m:name>28373341367200U</m:name> </m:NameType> </m:Names> <m:mRID>002997004330</m:mRID> </m:Meter> <m:Readings>从上面的回复中,我想从上面的回复中获取一些数据。下面是我的代码
2 回答

绝地无双
TA贡献1946条经验 获得超4个赞
首先将<return>元素的值放入一个字符串变量中(比方说string returnValue)
然后 XMLreturnValue通过将值传递给以下函数来解码 using。
public static string XmlDecode(string value) {
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root>" + value + "</root>");
return xmlDoc.InnerText;
}
上述函数的返回值是有效的 XML,您可以使用XDocument.Parse或 LINQ to XML 对其进行解析

森栏
TA贡献1810条经验 获得超5个赞
问题是您的 soap 响应内容是 XML。但 UserID xml 元素被理解为一个字符串——在你的响应内容中,有很多 html 转义字符)。
您需要修复您的服务或通过替换<
, >
,取消转义您的字符串"
。
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消