我得到了一個XML,我試圖用LINQ to XML解析並將其轉換爲匿名的對象列表。要做到這一點,我想出了下面的代碼片段:使用LINQ讀取XML時防止重複元素訪問
var res = doc
.Root
.Elements("Record")
.Elements("Term")
.Select(term => new
{
LanguageCode = term.Attribute("languageCode").Value,
ConceptNumber = Convert.ToInt32(term.Attribute("conceptNumber").Value),
IsHidden = Convert.ToBoolean(term.Attribute("hidden").Value),
Label = term.Value,
InputDate = DateTime.Parse(term.Parent.Element("InputDate").Value),
LastUpdate = DateTime.Parse(term.Parent.Element("LastUpdated").Value)
}).ToList();
請注意InputDate & LASTUPDATE部分。正如你看到的,我必須訪問父節點(比如,term.Parent),以便我可以訪問這2個元素,這看起來很亂。是否有任何方法可以聲明term.Parent一次並反覆使用它來提取這些屬性?
這裏是XML的一個片段,我想讀:
<Record>
<Term languageCode="Prs" conceptNumber="10" hidden="False">Whatever</Term>
<Status>Approved</Status>
<Frequency>0</Frequency>
<InputDate>12/30/1899</InputDate>
<LastUpdate>10/25/2009</LastUpdate>
</Record>
謝謝
正如我在這裏看到了你的第一個問題。請標記正確答案或回答當前答案,如果有錯誤。謝謝。 –