You should try Linq for XML.
XDocument doc = XDocument.Load(file); var nodeList = from ele in doc.Descendants("item") orderby int.Parse(ele.Attribute("key").Value) select ele;
You can try XPathNavigator and XPathExpression .
//I presume that variable xNodeList contains XmlNodeList. XPathNavigator nav=xNodeList.Item(0).OwnerDocument.CreateNavigator(); XPathExpression exp = nav.Compile("root/item"); exp.AddSort("@key", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Number ); foreach (XPathNavigator t in nav.Select(exp)) { Console.WriteLine(t.OuterXml ); }
source share