110,571
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<item>
<i1 Tag = "1" ></i1>
<i2 Tag = "3" ></i2>
<i3 Tag = "2" ></i3>
<i7 Tag = "7" ></i7>
<i4 Tag = "4" ></i4>
<i5 Tag = "5" ></i5>
<i6 Tag = "6" ></i6>
</item>
</configuration>
public void SortXMLDoc_Test(string address)
{
XmlDocument dom = new XmlDocument();
dom.Load(address);
XPathDocument pathdoc = new XPathDocument(address);
//XmlNodeList nodes = dom.SelectSingleNode("UserPattern").ChildNodes;
XmlNode xn = dom.SelectSingleNode("configuration");
XPathNavigator nav = pathdoc.CreateNavigator();
string xpath = String.Format("/configuration/item");
XPathExpression exp = nav.Compile(xpath);
exp.AddSort("@Tag",XmlSortOrder.Descending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathNodeIterator nodeIter = nav.Select(exp);
xn.RemoveAll();
while (nodeIter.MoveNext())
{
// XmlElement xe = dom.createElement("Tag");
xe.SetAttribute("Tag", nodeIter.Current.GetAttribute("Tag", ""));
xn.AppendChild(xe);
}
dom.Save(address);
}
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<item>
<i1 Tag = "1" ></i1>
<i3 Tag = "2" ></i3>
<i2 Tag = "3" ></i2>
<i4 Tag = "4" ></i4>
<i5 Tag = "5" ></i5>
<i6 Tag = "6" ></i6>
<i7 Tag = "7" ></i7>
</item>
</configuration>
using System.Xml.Linq
XElement.Parse(xml).Element("item").OrderBy(e=>e.Attribute["Tag"].Value)