LINQ to XML:XNode查询是否可行

时间:2010-07-30 05:44:23

标签: c# .net silverlight linq-to-xml

我想在Silverlight 3中使用LINQ to XML,因为没有XPath支持。 我有点喜欢它。但我正在研究的项目并不能保证我要查询的所有XML标签都会出现在结果XML文件中。

由于这个原因,我将无法将整个文件作为XDocument查询,因为在一个文档中缺少标记会混淆枚举。 无论如何将XNode强制转换为XDocument?我问这个,因为我无法查询XNode。

1 个答案:

答案 0 :(得分:2)

即使使用LINQ-to-XML,你也应该通过 name 来查询,所以我不确定为什么没有任何特定标签应该“混淆枚举” - 简单地说;你可能有一些空值,即

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

您无法将XNode强制转换为XDocument,但如果您确定它是元素,那么转换为XElement应该提供什么你需要。

另请注意,当 value 节点可能丢失时,您可能会发现使用转换运算符最简单:

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

如果<AuditDate>不存在,则会返回空的Nullable<DateTime> - 同样的方法适用于大多数常见的值类型,或者对于只转换为string的字符串。