2

我有一个 Xml 文档,我想使用 linq 查询将其转换为 XnlNodeList。现在,Xml 和 Linq 都不是很清楚。我得到的错误是Cannot implicitly convert type 'System.Linq.IOrderedEnumerable<System.Xml.XmlElement>' to 'System.Xml.XmlNodeList'. An explicit conversion exists (are you missing a cast?).

XmlNodeList abTestDocx = abTestDoc.GetElementsByTagName("FS").OfType<XmlElement>().OrderBy(FS => FS.GetAttribute("label"));

谢谢!

4

1 回答 1

3

您通常不会XmlNodeList自己创建实例。你真的需要一个吗?如果您只需要遍历节点,只需将其分配给IEnumerable<XmlElement>

IEnumerable<XmlElement> abTestDocx = abTestDoc
     .GetElementsByTagName("FS")
     .OfType<XmlElement>()
     .OrderBy(fs => fs.GetAttribute("label"));

请注意,使用 LINQ to XML 通常比旧XmlDocumentAPI 更好。那么你只需要:

IEnumerable<XElement> abTestDocx = doc
     .Descendants("FS")
     .OrderBy(fs => (string) fs.Attribute("label"));

......所有其他的事情也会更简单。LINQ to XML 很可爱 :)

于 2014-02-04T19:56:38.527 回答