C# 无法加载动态创建的XML文件。不带编码标记的Xml如何在创建Xml文件后添加根编码标记
你可以等一会儿再试一次。例如,类似这样的事情:C# 无法加载动态创建的XML文件。不带编码标记的Xml如何在创建Xml文件后添加根编码标记,c#,xml,C#,Xml,你可以等一会儿再试一次。例如,类似这样的事情: if (!File.Exists(locationFile)) { string file = @"mypathtoxml"; XmlDocument objXmlDoc = new XmlDocument(); doc.Load(file); //- i get error here in loading my XML file which is created dynamically. //process ca
if (!File.Exists(locationFile))
{
string file = @"mypathtoxml";
XmlDocument objXmlDoc = new XmlDocument();
doc.Load(file); //- i get error here in loading my XML file which is created dynamically.
//process cannot access my path(my xml file Location) because it is being used by another process
}
为了在某个时候终止,您可以添加一个计数器,然后只尝试10次左右。试试这个
var finished = false;
while (!finished)
{
try
{
if (!File.Exists(locationFile))
{
string file = @"mypathtoxml";
XmlDocument objXmlDoc = new XmlDocument();
doc.Load(file);
finished = true;
}
}
catch (IOException)
{
// the file is unavailable because it is:
// - still being written to
// - being processed by another thread
// so we just wait a second
Thread.Sleep(1000);
}
}
string file=”“+file.ReadAllText(文件名)+”;
XmlDocument objXmlDoc=新的XmlDocument();
objXmlDoc.LoadXml(文件);
有人请帮忙。提前感谢您的帮助从外观上看,您有两个不同的问题,因此您应该问两个不同的问题。至于“被另一个进程使用”错误,您是如何创建该文件的?你关好了吗?您如何知道它何时完成创建?您的两个问题都与xml的创建有关,而不是与xml的读取有关-您应该显示代码.Problem solved File.Create(folderPath+“/”+newXml.Close();创建文件后,需要关闭文件。添加标记,然后我可以将数据保存到其中。是的,Matthew watson,我有两个查询。我正在创建一个文件,但没有关闭它,所以这是我的错误。因为当我们在VisualStudio中创建文件时,它会动态/手动打开一个文件。所以要执行操作,我需要正确关闭它。然后继续我的保存或加载XML文件的功能。它解决了我的错误:File.Create(folderPath+“/”+newXml.Close();您已将文件路径更改为某个固定的xml字符串。这对读取正在使用的文件有何帮助?我修改了代码,将xml定义和根标记添加到现有文件中。关于创建xml(动态)而不编码标记。它的首要任务是添加标记,然后将其保存到文件中。最后加载XML以执行操作。因为在加载文件(doc.Load(file);)时,不确定实际是哪种类型是错误的。
string file = "<?xml version=\"1.0\"?><mypathtoxml>" + File.ReadAllText(FILENAME) + "</mypathtoxml>";
XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.LoadXml(file);