向XML文件追加数据

来源:百度知道 编辑:UC知道 时间:2024/05/23 02:13:13
我所了解的方法是:先按文件路径把XML文件load到xml对象,获取根结点,再向根结点AppendChild结点,最后xmlDoc.Save(“路径”)。

个人觉得这种方法的缺点是:这种方法先从服务器下载XML文件到本地,添加数据后再从本地上传XML文件到服务器,XML文件小倒好,如果XML文件比较大,比如十几甚至几十兆时,势必会影响速度!

所以,我想请问高手,能不能在服务器端将所要添加的数据添加到指定的XML文件中,而不需要在客户端和服务器端来回传两次XML文件?或者请提供另外的方法来回避我提到的缺点!

诚心请教,不惜高分!若满意,可再加分!
谢谢回答,是我一时迷糊,我所做的方法本来就是我想要的,只是一时迷糊了。我所做的方法是:
protected void AddDataToXMLDoc(string xmlDocPath, Hashtable hst)
{
DataSet ds = new DataSet();
ds.ReadXml(xmlDocPath);
DataRow dr = ds.Tables[0].NewRow();
foreach (Object hstKey in hst.Keys)
{
dr[hstKey.ToString()] = hst[hstKey.ToString()].ToString();
}
ds.Tables[0].Rows.Add(dr);
ds.WriteXml(xmlDocPath);
}

!!!!可以在ASP.NET页面里面写啊,页面上放个button按下以后在click事件里面写 :先按文件路径把XML文件load到xml对象,获取根结点,再向根结点AppendChild结点,最后xmlDoc.Save(“路径”)。 这全是在服务器上做的,客户端需要的只是点击一下button而已

你先要弄明白,再ASP.NET中,处理XML文件是在客户端呢?还是在服务器端?
你像XML文件中添加数据,这些数据不就是从客户端获取的吗?然后把这些数据传回服务器端,服务器端然后LOAD。

不会在本地处理的。

先用Ajax做客户端加载。在更改保存时在用Ajax传回服务器,程序肯定是要读两次的。
你还可以用缓存,这样就可以做到只加载一次,