Так что я совсем не хотел публиковать его, поскольку уже есть бесконечные документы об этом. Его было 2 года, когда я коснулся LINQ, и теперь он забрал меня. После 3 часов непрерывных попыток и неудач я решил сделать то, чего не хотел. Отправьте его в SO.Получите значение из XML через linq
У меня есть этот XML
<TopMost xmlns="http://abc.com/">
<Mine>MyName</Mine>
<Hello>
<File>SIMPLE</File>
<Book>20</Book>
<Copy>0</Copy>
</Hello>
</TopMost>
Я просто хочу, чтобы получить значения "Файл", "Книга", "Копировать". и хотите сравнить его с чем-то в Unit Test.
Я достиг ДО этого:
string result = string.Empty;
const string path = @"C:\Library.xml";
XDocument xdoc = XDocument.Load(path);
var lv1s = from paper in xdoc.Descendants("Hello")
select new
{
fileP = paper.Element("File").Value,
bookP = paper.Element("Book").Value,
copyP = paper.Element("Copy").Value,
};
result += lv1s.fileP + lv1s.bookP + lv1s.copyP; // Error
MessageBox.Show(result);
Ошибка: Последовательность не содержит элементов
Я знаю, что там должен быть легкий путь вокруг, и я далек от этого. У меня есть много таких фрагментов кода, которые я пробовал и терпел неудачу.
EDIT
var lv1s = from paper in xdoc.Descendants(ns + "Hello")
select new
{
fileP = paper.Element(ns + "File").Value,
bookP = paper.Element(ns + "Book").Value,
copyP = paper.Element(ns + "Copy").Value,
};
Я получаю ошибку компиляции.
Error: The Name ns doex not exist in current context.
Я предполагаю, что счет-фактура == или наоборот? –
его бумага ....... извините – Sandy