[英]Query Xml File for Records using Linq
以下是我的xml文件。 我必須為每個頁面和每個用逗號分隔的字符串中的Type提及字段。 請幫助如何繼續使用Linq
示例:如果我想為“ page1”定義“ Type = customFields”,則必須以逗號分隔的ProjectID,EmployeeID,EmployeeName,hasExpiration等獲取輸出
<Pages>
<Page Name="Page1" >
<Type TypeID="customfields">
<Field>ProjectID</Field>
<Field>EmployeeID</Field>
<Field>EmployeeName</Field>
<Field>HasExpiration</Field>
<Field>EndDate</Field>
</Type>
<Type TypeID="Directfields">
<Field>ProjectID</Field>
<Field>EmployeeID</Field>
<Field>EmployeeName</Field>
<Field>HasExpiration</Field>
<Field>EndDate</Field>
<Field>IsInUpdateMode</Field>
<Field>TimesheetSpendLimit</Field>
</Type>
</Page>
<Page Name="Page2" >
<Type TypeID="customfields">
<Field>ProjectID</Field>
<Field>EmployeeID</Field>
<Field>EmployeeName</Field>
<Field>HasExpiration</Field>
<Field>EndDate</Field>
<Field>IsInUpdateMode</Field>
<Field>TimesheetSpendLimit</Field>
</Type>
<Type TypeID="Directfields">
<Field>ProjectID</Field>
<Field>EmployeeID</Field>
<Field>EmployeeName</Field>
<Field>HasExpiration</Field>
<Field>EndDate</Field>
<Field>IsInUpdateMode</Field>
<Field>TimesheetSpendLimit</Field>
</Type>
</Page>
</Pages>
您可以這樣做:
var Result = from a in element.Descendants("Page")
from b in a.Descendants("Type")
select new
{
Page = a.Attribute("Name").Value,
Type = b.Attribute("TypeID").Value,
Fields = String.Join(",", b.Elements("Field").Select(x => x.Value))
};
foreach (var item in Result)
{
Console.WriteLine(String.Format("Page = {0}:Type={1}:Fields:{2}", item.Page, item.Type, item.Fields));
}
還要查看我的這篇博客文章以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.