【发布时间】:2013-09-17 18:49:23
【问题描述】:
我的目标:我想解析目录号 987654 的 XML 文件并将其显示在文本框中。我的 XML 文件如下所示:
<?xml version="1.0"?>
<!-- This file was generated by the installer. -->
<ModificationMap>
<replace>
<replace>
<replace>
<!-- Changed Serial Number and Product ID -->
<text symbol="__EXAMPLE_SERIALNUMBER__">123456789</text>
<text symbol="__EXAMPLE_CATALOGNUMBER__">987654</text>
<text symbol="__MY_XMLPROGRAM__">300</text>
<text symbol="__REGISTRATION_EXAMPLE__">20</text>
<text symbol="__REGISTRATION_EXAMPLEVERSION__">20</text>
<!-- Asset Profile -->
<text symbol="__ASSET_MEMBERNAME__">MY_PROGRAM</text>
<text symbol="__ASSET_FRIENDLYNAME__">XMLFile</text>
<text symbol="__ASSET_DESCRIPTION__">XMLFile</text>
</replace>
<replace>
<delete>
<replace>
<replace>
</ModificationMap>
代码:
public Form1()
{
InitializeComponent();
var dict = XDocument.Load(@"C:\Users\Smith\Desktop\example.xml")
.Descendants("text")
.ToDictionary(f => f.Attribute("__EXAMPLE_CATALOGNUMBER__").Value,
f => f.Attribute("symbol").Value);
textBox1.Text = dict["__EXAMPLE_CATALOGNUMBER__"];
}
我收到一条错误消息告诉我:
NullReferenceException 未处理。
我认为这种实现我的目标的方法是错误的。我是 C# 编码的新手。
【问题讨论】:
-
您可以将 XML 发布为代码而不是图像吗?
-
您是否正在尝试搜索具有
symbol属性和值为__REGISTRATION_CATALOGNUMBER__的<text>元素? -
您的意思是搜索 EXAMPLE_CATALOGNUMBER 吗?
-
@appcoder:是的,EXAMPLE_CATALOGNUMBER。我希望 987654 显示在文本框中。
-
NullReferenceException的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。
标签: c# xml xml-parsing nullreferenceexception