2010-07-30 63 views
1

我想在Silverlight 3中使用LINQ to XML,因为没有XPath支持。 我有种得到它的窍门。但是我正在处理的项目并不能保证我要查询的所有XML标记都会显示在结果XML文件中。LINQ to XML:是否可以使用XNode查询

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

回答

2

即使使用LINQ到XML,您应该查询名称,所以我不确定为什么没有任何特定标签应该“枚举枚举” - 简单地说;你可能有一些空值,即

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

你无法施展任意XNodeXDocument,但如果你确信这是一个元素,铸造XElement应该提供你所需要的。

还要注意的是,当节点可能会丢失,您可能会发现最容易使用的转换运营商:

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

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