我有一个xml文档,我正在我的asp .net应用程序中加载。它的结构如下
-<Event>
<Event_Name>Special Name</Event_Name>
<Event_Date>5/27/2016 12:00:00 AM</Event_Date>
<Event_Description>Event Description</Event_Description>
</Event>
我正在我的代码中加载它,就像这样
XmlDocument doc = new XmlDocument();
string path = Server.MapPath("~/NewsXMLNews.xml");
doc.Load(path);
这正确加载。问题是,我想在我的aspx页面上将Event_Name设置为标签的文本。我使用以下代码
执行此操作 string nameOfEvent = doc.SelectSingleNode("Event_Name").ToString();
eventName.Text = nameOfEvent;
问题是nameOfEvent返回null,所以我得到nullReferenceException
我并不完全是我在这里做错了什么。
答案 0 :(得分:1)
由于您已经检查了路径是否正确并且文档已正确加载,我认为您只需要更改以下行:
string nameOfEvent = doc.SelectSingleNode("/Event/Event_Name").InnerText;
编辑:我检查xml加载过程的以下步骤:
我在描述的xml文件中删除了减号并保存 以下行为c:\ temp \ Event.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Event>
<Event_Name>Special Name</Event_Name>
<Event_Date>5/27/2016 12:00:00 AM</Event_Date>
<Event_Description>Event Description</Event_Description>
</Event>
然后我成功地跑了:
public Form1()
{
InitializeComponent();
XmlDocument doc = new XmlDocument();
string path = "c:\\temp\\Event.xml";
doc.Load(path);
string nameOfEvent = doc.SelectSingleNode("/Event/Event_Name").InnerText;
eventName.Text = nameOfEvent;
}
eventName
文字的标签是特殊名称
正如所料。答案 1 :(得分:0)
这应该有效:
XmlNode nameOfEvent = doc.SelectSingleNode("/Event/Event_Name");
string text = nameOfEvent.InnerText;
eventName.Text = text;