Я совершенно новый для Linq2XML, поскольку я кодирую много строк для выполнения простых вещей, и в простом проекте я хотел попробовать...
Я с этим в течение 2 часов и ничего не понимаю: (
Я действительно, действительно думаю вернуться к XmlNode-code-alike
Задача:
- Я отправляю SOAP-действие службе ASMX, и получаю ответ как XML
- Я проанализирую XML в объекте XDocument
- Я пытаюсь получить список узлов... err! Проблема!
как вы можете видеть из этого снимок экрана
alt text http://www.balexandre.com/temp/2010-02-26_0038.png
my XDocument имеет Node, называемый TransactionInformationType, который является последовательностью, и я просто хочу получить все и получить только 2 переменные, которые мне нужны (вы можете см. комментарий в коде) чуть ниже выберите c;
в окне Часы вы можете видеть, что
doc.Descendants("TransactionInformationType")
ничего не возвращает и видит содержимое XDocument в Text Visualizer, он существует!
Кто-нибудь хочет объяснить и помочь мне пройти эту ОГРОМНУЮ стену?
Спасибо!
Добавлен
Ответ
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
};
Спасибо всем за помощь!