在C#中选择具有相同名称但不同属性内部文本的XML节点
<item>
<title>Aerie Peak</title>
<link>http://www.wow-europe.com/realmstatus/index.html#Aerie Peak</link>
<description>Aerie Peak - Realm Down - Lang en - Type PvE</description>
<category domain="status">Realm Down</category>
<category domain="language">en</category>
<category domain="type">PvE</category>
<category domain="queue">false</category>
<guid isPermaLink='false'>EU5-REALM15</guid>
</item>
我需要选择 title
和 status
。这就是我想到的:
string uri = "http://www.wow-europe.com/realmstatus/index.xml";
XmlDocument doc = new XmlDocument();
doc.Load(uri);
XmlNodeList nodes = doc.SelectNodes("//item");
foreach (XmlNode node in nodes)
{
{
RealmList.Text += node["title"].InnerText + " - " +
node.SelectNodes("category[@domain='status']")[0].InnerText;
}
}
不过,这在选择行给出了System.NullReferenceException:对象引用未设置为对象的实例。
。我不确定如何选择节点。
<item>
<title>Aerie Peak</title>
<link>http://www.wow-europe.com/realmstatus/index.html#Aerie Peak</link>
<description>Aerie Peak - Realm Down - Lang en - Type PvE</description>
<category domain="status">Realm Down</category>
<category domain="language">en</category>
<category domain="type">PvE</category>
<category domain="queue">false</category>
<guid isPermaLink='false'>EU5-REALM15</guid>
</item>
I need to select title
and status
. Here's what I came up with:
string uri = "http://www.wow-europe.com/realmstatus/index.xml";
XmlDocument doc = new XmlDocument();
doc.Load(uri);
XmlNodeList nodes = doc.SelectNodes("//item");
foreach (XmlNode node in nodes)
{
{
RealmList.Text += node["title"].InnerText + " - " +
node.SelectNodes("category[@domain='status']")[0].InnerText;
}
}
That gives System.NullReferenceException: Object reference not set to an instance of an object.
at the selection line, though. I'm not sure how would I go about selecting the node.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的代码适用于您的示例,但文件 http://www.wow-europe .com/realmstatus/index.xml 在撰写本文时至少包含一个不包含类别元素的项目元素。
因为该节点不存在,所以您会得到异常。
我正在谈论 http://www.wow-europe 顶部的 XML .com/realmstatus/index.xml。
我认为这就是你的问题所在。
Your code works fine for your example, but the file http://www.wow-europe.com/realmstatus/index.xml contains at least one item element at the time of writing that does not contain a category element.
Because that node is not present, you get the exception.
I'm talking about this XML at the top of http://www.wow-europe.com/realmstatus/index.xml.
I think that's where your problem is.
您还必须初始化 RealmList 和 RealmList 中的“Text”成员,因为字符串默认值为 null。
You have to initialize RealmList and 'Text' member in RealmList too, as string default is null.