正如T所说,下下,这个方法不堪入目, ̄□ ̄||
贴上再说
//先搞个struct声明 private struct datastruct { public string x; public string y; public string z; }
private void sort()
{
int i = intIndex + 2;//索引定位 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[0].InnerText; dt0.y = xnf1[1].InnerText; dt0.z = xnf1[2].InnerText; xnf1[0].InnerText = TextBox2.Text; xnf1[1].InnerText = TextBox3.Text; xnf1[2].InnerText = TextBox4.Text; }
}
//增加尾节点
XmlElement xe1 = xmlDoc.CreateElement("Item"); xe1.SetAttribute("id", (listview.Items.Count+1).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神马的,自己搞个水水的照样过日子
思路:而当数据大的时候这个,肯定很耗资源,根据文本结构,最理想的方法应该是在所要插入新数据的地方回车,生成新的所需的行数空间,在一一进行写入操作。