C# xml 根据属性排序然后保存回文件,或者根据属性按顺序读取

hao270431700 hao270431700 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

<?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>
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
hao270431700
C# 111,128 成员 642,536 内容