Выбор имени автора в ленте Atom с помощью LINQ (C #)
Вопрос
Я пытаюсь выбрать " имя " поле из авторского узла в ленте ATOM с использованием LINQ. Я могу получить все поля, которые мне нужны, так:
XDocument stories = XDocument.Parse(xmlContent);
XNamespace xmlns = "http://www.w3.org/2005/Atom";
var story = from entry in stories.Descendants(xmlns + "entry")
select new Story
{
Title = entry.Element(xmlns + "title").Value,
Content = entry.Element(xmlns + "content").Value
};
Как мне выбрать автора - > Имя поля в этом сценарии? Р>
Решение
Вы в основном хотите:
entry.Element(xmlns + "author").Element(xmlns + "name").Value
Но вы можете обернуть это дополнительным методом, чтобы вы могли легко предпринять соответствующие действия, если отсутствуют элементы author или name. Вы также можете подумать о том, что вы хотите, чтобы произошло, если есть более одного автора.
В ленте также может быть элемент автора ... просто еще одна вещь, о которой следует помнить.
Другие советы
Это может быть что-то вроде этого:
var story = from entry in stories.Descendants(xmlns + "entry")
from a in entry.Descendants(xmlns + "author")
select new Story
{
Title = entry.Element(xmlns + "title").Value,
Content = entry.Element(xmlns + "subtitle").Value,
Author = new AuthorInfo(
a.Element(xmlns + "name").Value,
a.Element(xmlns + "email").Value,
a.Element(xmlns + "uri").Value
)
};
Не связан с StackOverflow