【发布时间】:2016-09-06 20:23:17
【问题描述】:
我有一个存储在类中的 xml 元素列表:
public class clsField
{
public string fieldName { get; set; }
}
然后我正在加载一个xml文件:
XDocument doc = XDocument.Load(fileName);
最后,我只想将上述类中定义的字段检索到 IEnumerable 对象中。这是我目前所拥有的:
List<clsField> lstFieldsToProcess;
IEnumerable<XElement> allthedocs = from thedoc
in doc.Descendants("thedocs")
select
(
from fields
in lstFieldsToProcess
select XElement.Parse(fields.fieldName)
);
但是上面的代码出错了。任何帮助,将不胜感激。先谢谢了。
更新 #1
伪代码:
var fieldNames = new HashSet<string>(lstFieldsToProcess.Select(c => c.fieldName));
IEnumerable<XElement> elems = from level1 in doc.Elements("thedocs")
let level2 = level1.Descendants()
where fieldNames.Contains(level2.Name.LocalName)
select level1;
【问题讨论】:
-
getting an error on the above code分享给我们怎么样? -
clsField是序列化到fileName文档中的对象吗?或者您是否有序列化的任意对象,并且您想获取 another 类的属性名称(在本例中为类clsField),并且仅从 xml 文档中检索与该属性匹配的字段在clsField?中找到的名字? -
后者是正确的。 clsField 是一个单独的类,其中包含我想从“XDocument doc”中检索的字段的属性名称。谢谢。
标签: c# linq linq-to-xml