【发布时间】:2009-11-17 00:51:13
【问题描述】:
我无法让我的程序正确读取此 XML 文件,它也需要写入但还没有。请注意,这只是一小部分代码
XmlDocument InstalledList = new XmlDocument();
InstalledList.Load(AppsInstalledFileNamePath);
//Sets the PackageNode to the correct part of the XmlDocument
XmlNodeList PackagesNode = InstalledList.GetElementsByTagName("installed");
foreach (XmlNode InstalledListNodes in PackagesNode)
{
//If the title is the same as what the user typed, continue on
if (InstalledListNodes.Attributes["title"].InnerText.Equals(packagename) == true)
{
BatchProcessFileName = InstalledListNodes.Attributes["uninstallername"].InnerText;
Console.WriteLine("Filename OK");
我还去掉了 try 语句,所以我不必添加 catch
下面是它试图读取(以及稍后写入)的 XML 文件
<?xml version="1.0" encoding="utf-8" ?>
<packages>
<installed>
<sampleapp title="sampleapp" id="00001" uninstallername="sampleapp.bat" installdate="11/15/09"></sampleapp>
<sampleapp2 title="sampleapp2" id="00002" uninstallername="sampleapp2.bat" installdate="11/16/09"></sampleapp2>
</installed>
<uninstalled>
</uninstalled>
</packages>
代码运行,但在
处出现 NullReference 异常InstalledListNodes.Attributes["title"].InnerText.Equals(packagename) == true
【问题讨论】:
-
次要:考虑将单数对象持有变量重命名为其单数英文名称,反之亦然:
foreach (XmlNode InstalledListNode in PackagesNodes) -
我编辑了你的 q。稍微去掉了与XML处理无关的部分,希望大家不要介意。
标签: c# xml xmldocument nullreferenceexception