0
我有一個鏡頭問題... 我有一個xml文件我想存儲在元素列表中。使用xlinq Faltten列表(帶有回報)
我想展平這個列表,以便遵循另一個數據源給出的另一個模式。
這裏是一個XML樣本
<?xml version="1.0" encoding="utf-8" ?>
<Actors>
<Actor FirstName="Will" LastName="Smith">
<Movie name="Men in Black" Date="1999"/>
<Movie name="Wild wild west" Date="1999"/>
<Movie name="Ali" Date="2002"/>
</Actor>
<Actor FirstName="Jason" LastName="Statham">
<Movie name="The Transporter" Date="2002"/>
<Movie name="Revolver" Date="2005"/>
<Movie name="The Bank Job" Date="2008"/>
<Movie name="Transporter 3" Date="2008"/>
</Actor>
</Actors>
然後,我
public class Actors
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Name { get; set; }
public string Date { get; set; }
}
現在創建我的對象,我看這個XML與XLINQ這樣的:
private static void Read(string fileName)
{
XDocument testDoc = XDocument.Load(fileName);
var reader = from c in testDoc.Root.Elements()
select c;
var list = reader.ToList();
}
現在我想填寫每個項目的列表和所有數據(名字,姓氏,名稱,日期)必須存在。
我認爲屈服回報必須解決我的問題,但實際上我不明白它是如何工作的。 (我想實現它)
感謝
它看起來相當不錯,但我不知道什麼原因,我無法過濾任何節點。 xxx.Descendants(「Movie」)總是返回0 ...但如果If put xxx.Descendants();我會收到我的完整列表。我使用de XDocument.Load(..),奇怪的是,當我在屬性中添加一個值時,將它考慮在內... – Refre
好的,名稱空間問題..我解決了它 – Refre
XML是否在表單中有名稱空間聲明例如' ... '?在那種情況下,例如XDocument doc = XDocument.Load(「file.xml」); XNamespace df = doc.Root.Name.Namespace;列表 actors =(從電影中的XDocument.Load(fileName).Descendants(df +「Movie」)選擇新的...).ToList();'應該工作。 –