我有一个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"));
谢谢!
答案 0 :(得分:3)
您通常不会自己创建XmlNodeList
个实例。你真的需要一个吗?如果您只需要迭代节点,只需将其分配给IEnumerable<XmlElement>
:
IEnumerable<XmlElement> abTestDocx = abTestDoc
.GetElementsByTagName("FS")
.OfType<XmlElement>()
.OrderBy(fs => fs.GetAttribute("label"));
请注意,使用LINQ to XML通常比旧的XmlDocument
API更好。然后你只需要:
IEnumerable<XElement> abTestDocx = doc
.Descendants("FS")
.OrderBy(fs => (string) fs.Attribute("label"));
......各种其他事情也会更简单。 LINQ to XML非常可爱:)