我读了一个xml文件,如果有一个转义实体我想在我做一些处理之前修复它并将xml文件写回来。这就是我正在做的事情:
try
{
var doc = new XmlDocument();
// do some job
}
catch (Exception e)
{
if (e is XmlException)
{
checkXML(doc);
}
else
{
// do some job
}
}
finally
{
_watcher.EnableRaisingEvents = true;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
public void checkXML(XmlDocument doc)
{
XmlNode node;
node = doc.SelectSingleNode("/BroadcastMonitor/Current");
node["name1"].InnerText = SecurityElement.Escape(node["name1"].InnerText);
node["name2"].InnerText = SecurityElement.Escape(node["name2"].InnerText); ;
}
我的第一个问题:我无法访问 catch 中的 doc 实例。如何访问doc实例以将其传递给 checkXML
我的第二个问题:在修复了转义元素之后,我想返回try块继续执行需要在xml文件上完成的作业。这怎么可能,或者我是否使用嵌套的try / catch。
请解释一下。谢谢。