Как получить значение узла в XML, используя мыло пользовательского интерфейса ASP.NET с помощью C#?
Я хочу получить значение nsAccVal:IBANNumber в приведенном ниже XML-интерфейсе soap UI. Но, не получив за исключением диспетчер пространств имен или XsltContext нужны. Этот запрос имеет префикс, переменную или определяемую пользователем функцию.
Весь мой мыльный конверт выглядит следующим образом:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <nsAccVal:EAIServices xmlns:nsAccVal="http://www.iibcdm.T24systems.com/FTAccountValidation" xmlns:nsT24sys="http://www.iibcdm.T24systems.com" xmlns:nsHdr="http://www.iibcdm.header.com"> <nsAccVal:Header> <nsHdr:MsgVersion>v 1.0</nsHdr:MsgVersion> <nsHdr:SrcAppId>IPI</nsHdr:SrcAppId> <nsHdr:SrcMsgId>20180916191655591</nsHdr:SrcMsgId> <nsHdr:SrcAppTimestamp>2018-09-09T19:12:55.5884814+04:00</nsHdr:SrcAppTimestamp> <nsHdr:SrvCode>QACCVAL</nsHdr:SrvCode> <nsHdr:SrvName>FTAccountValidation</nsHdr:SrvName> <nsHdr:TrackingId>20180916191655590</nsHdr:TrackingId> <nsHdr:Language>en_US</nsHdr:Language> <nsHdr:BankId>FH</nsHdr:BankId> <nsHdr:InstanceId/> <nsHdr:TargetApp/> <nsHdr:Status>S</nsHdr:Status> <nsHdr:EAITimestamp>2018-09-09T19:12:55.5884814+04:00</nsHdr:EAITimestamp> <nsHdr:SecurityInfo> <nsHdr:UserId/> <nsHdr:Password/> </nsHdr:SecurityInfo> <nsHdr:AdditionalData> <nsHdr:Group/> <nsHdr:nameValue/> </nsHdr:AdditionalData> </nsAccVal:Header> <nsAccVal:Body> <nsAccVal:FTAccountValidationRes> <nsAccVal:IBANNumber>AE710810000001219412001</nsAccVal:IBANNumber> <nsAccVal:AccountStatus>Inactive</nsAccVal:AccountStatus> <nsAccVal:AvailableBalance>0.00</nsAccVal:AvailableBalance> <nsAccVal:AccountName>ACTITLE1</nsAccVal:AccountName> <nsAccVal:EmailId>B.BHATT@LIVE.COM</nsAccVal:EmailId> <nsAccVal:MobileNumber>0501671809</nsAccVal:MobileNumber> </nsAccVal:FTAccountValidationRes> <nsAccVal:ExceptionDetails> <nsHdr:ErrorCode>000</nsHdr:ErrorCode> <nsHdr:ErrorDescription>Success</nsHdr:ErrorDescription> </nsAccVal:ExceptionDetails> </nsAccVal:Body> </nsAccVal:EAIServices> </soapenv:Body> </soapenv:Envelope>
Что я уже пробовал:
Код как показано ниже:
string ResponseAPI = System.IO.File.ReadAllText(@"F:\Sample.txt"); XmlDocument xml = new XmlDocument(); xml.LoadXml(ResponseAPI); //XmlNodeList xNodeList = xml.SelectNodes("/nsAccVal:EAIServices/nsAccVal:Body/nsAccVal:FTAccountValidationRes/nsAccVal:FTAccountValidationRes"); XmlNodeList xNodeList = xml.SelectNodes("/nsAccVal:EAIServices/nsAccVal:Body/nsAccVal:FTAccountValidationRes");
F-ES Sitecore
Google для использования xmldocument с namesapces вам необходимо использовать XmlNamespaceManager для определения вашего пространства имен и добавления префикса пространства имен в ваши запросы. Вот вам пример
https://techoctave.com/c7/posts/113-c-reading-xml-with-namespace
но если вы погуглите вы найдете больше