Я - completly Новое для Linq2XML, поскольку я кодирую ко многому, выравнивает для выполнения простых вещей, и в простом проекте я хотел дать ему попытку...
Я с этим в течение 2 часов и ничего, что я делаю get's это право: (
Я действительно, действительно думаю для возвращения к XmlNode-code-alike
Задача:
поскольку Вы видите из этого снимка экрана
сопроводительный текст http://www.balexandre.com/temp/2010-02-26_0038.png
мой XDocument имеет Узел под названием ведьма TransactionInformationType, Последовательность, и я простой хочу получить все и получить только 2 переменные, в которых я нуждаюсь (Вы видите прокомментированный код), чуть ниже выбора c;
в окне Watch Вы видите это
doc.Descendants("TransactionInformationType")
возвраты ничто вообще и наблюдение содержанием XDocument в тексте Visualizer, это действительно существует!
Кто-либо хочет объяснить и помочь мне передающий эту ОГРОМНУЮ стену?
Спасибо!
Добавленный
Ответ
Ответ XML имеет
и я должен использовать это в качестве Пространства имен!
оказывается, что, для получения значений я действительно должен использовать 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
};
Спасибо всем за справку!
var result = doc.Descendants("TransactionInformationType");
выбирает всех потомков в XDocument, которые имеют имя элемента «TransactionInformationType»
и находятся в пустом пространстве имен.
На снимке экрана видно, что элемент, который вы пытаетесь выбрать, находится в пространстве имен «https://ssl.ditonlinebetalingssystem.dk/remote/payment»
.
Это необходимо указать явно:
XNamespace ns = "https://ssl.ditonlinebetalingssystem.dk/remote/payment";
↑↑ ↑
var result = doc.Descendants(ns + "TransactionInformationType");
Это должно решить вашу проблему (замените пространство имен правильным URL-адресом):
XNamespace ns = "https://ssl.ditonline...";
doc.Descendants(ns + "TransactionInformationType");