我有以下代码,我将xml文件保存到下面显示的特定位置
public bool GetList(string keyword1, string streetname, string lat, string lng, string radius)
{
XmlDocument xmlDoc= CreateXML( keyword1,streetname,lat,lng,radius);
xmlDoc.Save(@"C:\Documents and Settings\Vijay.EKO-03\Desktop\blockseek3-9-2010\Block3.xml");
return true;
}
此Block3.xml文件存储在我的应用程序文件夹中,我使用此代码引用该特定的Block3.xml
function searchLocationsNear()
{
var searchUrl = "Block3.xml";
GDownloadUrl(searchUrl, function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName('marker');
map.clearOverlays();
我能够解析Block3.xml并显示结果,但是当我尝试保存Block3.xml时,我的问题再次出现在第二次迭代中
xmlDoc.Save(@"C:\Documents and Settings\Desktop\blockseek3-9-2010\Block3.xml");
先前的Block3.xml文件被新的替换,并存储在应用程序文件夹中 当我执行var searchUrl =“Block3.xml”时;它读取第一个Block3.xml而不是被替换的一个,任何人都可以帮助解决这个问题。 是他们的任何语法来清除该特定文件夹中保存的xmldoc文件。
答案 0 :(得分:1)
最有可能的是,GXml
类保留了一个打开的文件句柄。检查文档:如果它实现IDisposable
,请包装您的处理代码:
using ( var xml = GXml.parse(data) )
{
var markers = xml.documentElement.getElementsByTagName('marker');
map.clearOverlays();
}
这也假定parse()
方法是实际加载和读取文件的方法。如果您不释放文件句柄,则您的进程不知道文件系统中还有另一个版本。 (并且可能会发生其他令人讨厌的事情,具体取决于O / S打开文件的确切模式。)
我相信您的生产代码不会包含这些硬编码路径......?