[英]How to fetch single elements from xml list using LINQ in c#?
我想從XML文件中獲取數據並將值存儲到C#變量列表中。 所以我也可以用不同的方法使用它。下面是我的XML格式:
<fieldmetadata>
<field>
<name>Object Text</name>
<datatype>Text</datatype>
<label>ABC</label>
</field>
<field>
<name>Object Short Text</name>
<datatype>String</datatype>
<label>PQR</label>
</field>
下面是我的C#代碼:
public List<string> getAllidentifiers()
{
List<string> listx = new List<string>();
XDocument xdoc = XDocument.Load(Path.GetTempPath() + "\\XMLFormat.xml");
xdoc.Descendants("field").Select(p => new
{
name = p.Element("name").Value,
datatype = p.Element("datatype").Value,
label = p.Element("label").Value
}).ToList().ForEach(p =>
{
listx.Add(p.name);
listx.Add(p.datatype);
listx.Add(p.label);
});
return listx;
}
如何獲取列表元素到變量。
由於您當前的代碼僅返回一個平面字符串列表,因此您可以這樣實現:
var result = XDocument.Load("data.xml")
.Descendants("field")
.SelectMany(f => f.Elements().Select(e => e.Value))
.ToList();
但我認為一個更好的解決方案是返回IEnumerablE<Field>
,創建類型:
public class Field
{
public string Name { get; set; }
public string DataType { get; set; }
public string Label { get; set; }
}
然后像這樣反序列化文件:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.