2010-07-30 64 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