Как реализовать приведенный ниже XML-ответ в ASP.NET код с#
Я не могу получить данные из приведенного ниже ответа. Получение ошибки типа "вложенная таблица 'деноминации', которая наследует свое пространство имен, не может иметь несколько родительских таблиц в разных пространствах имен". Я пытаюсь реализовать в ASP.NET с#.
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetProductListResult xmlns="http://EDTS.DirectTopUpServices.DataTypes/2006/10"> <MessageID>810190215</MessageID> <Products> <Product> <CountryID>59</CountryID> <CountryISO>LK</CountryISO> <CountryCode>LK</CountryCode> <CountryName>Sri Lanka</CountryName> <OperatorID>48</OperatorID> <OperatorCode>DG</OperatorCode> <OperatorName>Dialog Sri Lanka</OperatorName> <CustomerCareNumber>+94-77767-8678</CustomerCareNumber> <PhoneNumberMask>+94-xxxxx-xxxx </PhoneNumberMask> <MinMaxValueRange> <MinValue>5</MinValue> <MaxValue>250</MaxValue> </MinMaxValueRange> </Product> <Product> <CountryID>60</CountryID> <CountryISO>PH</CountryISO> <CountryCode>PH</CountryCode> <CountryName>Philippines</CountryName> <OperatorID>54</OperatorID> <OperatorCode>TM</OperatorCode> <OperatorName>Touch Mobile Philippines</OperatorName> <CustomerCareNumber>+63-2370-1000</CustomerCareNumber> <PhoneNumberMask>+63-xxxxx-xxxxx </PhoneNumberMask> <Denominations> <NumberOfDenominations>5</NumberOfDenominations> <Denominations> <double>6</double> <double>16</double> <double>31</double> <double>51</double> <double>102</double> </Denominations> </Denominations> </Product> <Product> <CountryID>59</CountryID> <CountryISO>LK</CountryISO> <CountryCode>LK</CountryCode> <CountryName>Sri Lanka</CountryName> <OperatorID>58</OperatorID> <OperatorCode>TI</OperatorCode> <OperatorName>Etisalat Sri Lanka</OperatorName> <CustomerCareNumber>+ (94) 72212-3123 </CustomerCareNumber> <PhoneNumberMask>+94-xxxxx-xxxx </PhoneNumberMask> <MinMaxValueRange> <MinValue>5</MinValue> <MaxValue>250</MaxValue> </MinMaxValueRange> </Product> <Product> <CountryID>55</CountryID> <CountryISO>PK</CountryISO> <CountryCode>PK</CountryCode> <CountryName>Pakistan</CountryName> <OperatorID>80</OperatorID> <OperatorCode>WP</OperatorCode> <OperatorName>Warid Pakistan</OperatorName> <CustomerCareNumber>+92-32184-34357</CustomerCareNumber> <PhoneNumberMask>+92-xxxxx-xxxxx </PhoneNumberMask> <MinMaxValueRange> <MinValue>5</MinValue> <MaxValue>250</MaxValue> </MinMaxValueRange> </Product> <Product> <CountryID>55</CountryID> <CountryISO>PK</CountryISO> <CountryCode>PK</CountryCode> <CountryName>Pakistan</CountryName> <OperatorID>89</OperatorID> <OperatorCode>UF</OperatorCode> <OperatorName>Ufone Pakistan</OperatorName> <CustomerCareNumber>+92-51111-333100</CustomerCareNumber> <PhoneNumberMask>+92-xxxxx-xxxxx </PhoneNumberMask> <MinMaxValueRange> <MinValue>5</MinValue> <MaxValue>250</MaxValue> </MinMaxValueRange> </Product> </Products> </GetProductListResult> </soap:Body> </soap:Envelope>
Что я уже пробовал:
sResp.XmlResponse = xDoc.InnerXml.ToString(); //Parse the response xml from ezetop. StringReader sRead = new StringReader(xDoc.InnerXml.ToString()); dsResp.ReadXml(sRead); if (dsResp != null) { sResp.Result_Flag = Res_Code.SuccessFlag; for (int i = 0; i < dsResp.Tables["Product"].Rows.Count; i++) { sResp.CountryID = dsResp.Tables["Product"].Rows[i]["CountryID"].ToString().Trim(); sResp.CountryISO = dsResp.Tables["Product"].Rows[i]["CountryISO"].ToString().Trim(); for (int j = 0; j < dsResp.Tables["MinMaxValueRange"].Rows.Count; j++) { sResp.MinValue = dsResp.Tables["MinMaxValueRange"].Rows[i]["MinValue"].ToString().Trim(); sResp.MaxValue = dsResp.Tables["MinMaxValueRange"].Rows[i]["MaxValue"].ToString().Trim(); } for (int k = 0; k < dsResp.Tables["Denominations"].Rows.Count; k++) { int count = 0; sResp.NumberOfDenominations = dsResp.Tables["Denominations"].Rows[i]["NumberOfDenominations"].ToString().Trim(); count = Convert.ToInt32(sResp.NumberOfDenominations); for (int l = 0; l < count; l++) { sResp.Denom_double = dsResp.Tables[11].Rows[i]["double"].ToString().Trim(); } } }
Maciej Los
"Я не могу получить данные...- ... совсем не описательно. Можете ли вы быть более конкретным и предоставить подробную информацию, например, какой результат вы ожидаете...