WPF对于xml的简单操作(下下)插入节点并排序

时间:2023-03-08 21:58:26

正如T所说,下下,这个方法不堪入目, ̄□ ̄||

贴上再说

        //先搞个struct声明
private struct datastruct
{
public string x;
public string y;
public string z;
}
private void sort()
{
   int i = intIndex + ;//索引定位
XmlNodeList xnl = xmlRoot.ChildNodes;
datastruct dt0 = new datastruct();
datastruct dt1 = new datastruct();
foreach (XmlNode xn in xnl)
{
XmlElement xe =
(XmlElement)xn;
      //替换,原数据存入struct
if (xe.GetAttribute("id") == TextBox1.Text)
{
XmlNodeList xnf1 = xe.ChildNodes;
dt0.x = xnf1[].InnerText;
dt0.y = xnf1[].InnerText;
dt0.z = xnf1[].InnerText;
xnf1[].InnerText = TextBox2.Text;
xnf1[].InnerText = TextBox3.Text;
xnf1[].InnerText = TextBox4.Text;
}
    }
    //增加尾节点
    XmlElement xe1 = xmlDoc.CreateElement("Item");
xe1.SetAttribute("id", (listview.Items.Count+).ToString());
XmlElement xesub1 = xmlDoc.CreateElement("X");
xesub1.InnerText = dt1.x;
xe1.AppendChild(xesub1);
XmlElement xesub2 = xmlDoc.CreateElement("Y");
xesub2.InnerText = dt1.y;
xe1.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("Z");
xesub3.InnerText = dt1.z;
xe1.AppendChild(xesub3);
xmlRoot.AppendChild(xe1);
}

水水更健康,xls神马的,自己搞个水水的照样过日子

思路:而当数据大的时候这个,肯定很耗资源,根据文本结构,最理想的方法应该是在所要插入新数据的地方回车,生成新的所需的行数空间,在一一进行写入操作。