我正在处理格式化 XML 文件的代码,以便子文件夹节点实际上嵌套在它们的父节点中。源 XML 将每个文件夹作为根中的单独子节点,而不是像您期望的那样在其主文件夹中包含子文件夹的正确树。这个问题的代码是关于:
// Load original XML
string sFile = "PathFile";
XmlDocument doc = new XmlDocument();
doc.Load(sFile);
var n = doc.DocumentElement.SelectNodes ("//*"); // Load all nodes into nodelist n
// int nCount = n.Count; // If uncommented code works
foreach(XmlNode x in n)
{ rest of the code }
现在我的代码可以正常工作,但只是有时,即使在两次运行之间没有更改任何内容。我已将其缩小为:在 Visual Studio 中调试代码时,如果我只是从头到尾运行代码,则会出错。如果我中途休息并查看 XmlNodelist n 中的属性(通过将光标悬停在它上面并查看元素计数)它确实有效。发现这一点后,我添加了
int nCount = n.Count;
行,现在代码从头到尾在无人监督的情况下运行。
这里发生了什么,解决这个问题的正确方法是什么?注意: doc.LoadXml 不适用于此特定文件。
谢谢你的负荷,
托马斯