LINQ to XML: возможен ли запрос XNode - PullRequest
1 голос
/ 30 июля 2010

Я хочу использовать LINQ to XML в Silverlight 3, поскольку XPath не поддерживается. Я как бы понял это. Но проект, над которым я работаю, не гарантирует, что все теги XML, к которым я буду запрашивать, появятся в файле результатов XML.

Из-за этого я не смогу запросить весь файл, так как XDocument из-за отсутствия тега в одном документе приведет к путанице в перечислении. В любом случае можно ли привести тип XNode в XDocument? Я спрашиваю об этом, поскольку я не могу запросить XNode.

1 Ответ

2 голосов
/ 30 июля 2010

Даже с LINQ-to-XML вы должны делать запросы по name , поэтому я не уверен, почему отсутствие какого-либо конкретного тега должно «перемешивать перечисление» - просто; у вас могут быть нулевые значения, т. е.

var customer = node.Element("Foo");
// now test for null ;p

Вы не можете привести произвольный XNode к XDocument, но если вы уверены, что это элемент , приведение к XElement должно обеспечить то, что вам нужно.

Также обратите внимание, что когда значение узлов может отсутствовать, вам может быть проще всего использовать преобразование операторов:

var auditDate = (DateTime?)e.Element("AuditDate");

если <AuditDate> не существует, будет возвращено пустое Nullable<DateTime> - тот же подход работает для большинства распространенных типов значений или для строк, которые просто преобразуются в string.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...