Я совершенно новичок в Linq2XML, так как кодирую много строк для выполнения простых задач, и в простом проекте я хотел попробовать ...
Я с этим в течение 2 часов, и ничего, что я делаю, не понимаю, что это правильно
Я действительно, очень думаю вернуться к XmlNode-code-like
Задание:
- Я отправляю SOAP-действие службе ASMX и получаю ответ в виде XML
- Я разбираю XML в объект XDocument
- Я пытаюсь получить список узлов ... ошибка! Проблема!
Как видно из этого снимка экрана
альтернативный текст http://www.balexandre.com/temp/2010-02-26_0038.png
my XDocument имеет узел с именем TransactionInformationType witch - это последовательность, и я просто хочу получить все и получить только те две переменные, которые мне нужны (вы можете увидеть закомментированный код ) чуть ниже выберите c;
в окне Watch вы можете увидеть, что
doc.Descendants("TransactionInformationType")
вообще ничего не возвращает, и, судя по содержимому XDocument в Text Visualizer, он существует!
Кто-нибудь хочет объяснить и помочь мне пройти эту огромную стену?
Спасибо!
Добавлена
XДокументация
Ответ
Ответ XML имеет
<gettransactionlistResponse xmlns="https://ssl.ditonlinebetalingssystem.dk/remote/payment">
и я должен использовать это как Пространство имен!
получается, что для получения значений мне нужно также использовать XNamespace , так что окончательный код выглядит следующим образом:
// Parse XML
XDocument doc = XDocument.Parse(strResponse);
XNamespace ns = "https://ssl.ditonlinebetalingssystem.dk/remote/payment";
var trans = from item in doc.Descendants(ns + "TransactionInformationType")
select new TransactionInformationType
{
capturedamount = Convert.ToInt32(item.Element(ns + "capturedamount").Value),
orderid = item.Element(ns + "cardtypeid").Value
};
Спасибо всем за помощь!