如何解决xml属性值排序算法无效它是用C#编写的
for (int i = 0; i < node1.ChildNodes.Count; i++)
{
if (i == 0)
{
XmlNode node2 = node1.FirstChild;
XmlNode node3 = node2;
XmlNode node11 = node2.CloneNode(true);
string b = node3.NextSibling.Attributes["name"].Value.ToString();
while (node2.Attributes["name"].Value.ToString().CompareTo(b) < 0)
{
XmlNode node4 = node3.NextSibling;
node1.RemoveChild(node3);
doc.DocumentElement.InsertAfter(node11,node4);
node3 = node4.NextSibling;
if (node3 != node1.LastChild)
{
b = node3.NextSibling.Attributes["name"].Value.ToString();
}
else
{
b = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
}
}
}
if (i > 0)
{
XmlNode node2 = node1.FirstChild;
for (int k = 0; k < i; k++)
{
if (node2 != node1.LastChild)
{
node2 = node2.NextSibling;
}
}
string a = "0";
if (node2 != node1.LastChild)
{
a = node2.NextSibling.Attributes["name"].Value.ToString();
}
int z1 = 0;
XmlNode node3 = node2;
XmlNode node10 = node2.CloneNode(true);
while (node2.Attributes["name"].Value.ToString().CompareTo(a) < 0)
{
XmlNode node4 = node3.NextSibling;
node1.RemoveChild(node3);
doc.DocumentElement.InsertAfter(node10,node4);
if (node3 != node1.LastChild)
{
node3 = node4.NextSibling;
}
else
{
node3 = node1.FirstChild;
}
if (node3 != node1.LastChild)
{
a = node3.NextSibling.Attributes["name"].Value.ToString();
}
else
{
a = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
}
z1+=1;
}
}
当我运行此代码时,我的XML文件被破坏,大多数行被删除。我的目的是按字母顺序对属性的值进行排序。我试图在这里使用Bubblesort算法。原则是一个节点是固定的,并用其下一个兄弟姐妹对其进行检查,并用该兄弟姐妹更改位置,并且当下一个兄弟姐妹按字母顺序在他之后跟随时,此循环将停止。更改的主要目的是将删除固定节点,并在插入下一个同级节点之后将其删除,但是它不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。