获取innerText

时间:2015-06-29 12:46:04

标签: c# xml parsing

我有一个像这样的xml文件:

<locations>
    <location country="UK">
        <name>London</name>
        <class>Silver</class>
    </location>
    <location country="Germany">
        <name>Berlin II</name>
        <class>Bronze</class>
    </location>
</locations>

打开页面时,我会扣除一个值&#34; currentCountry&#34;来自网址。现在我想使用该值在XML文件中搜索相应的location条目,并将其子节点的innerHtml值放入变量中。这是我目前的代码,目前无效:

string currentCountry = "Germany" //For testing purposes
string currentName = "";
string currentClass = "";

XmlDocument doc = new XmlDocument();
doc.Load("C:\\IIS\\Web\\Content\\locations.xml");

XmlNodeList xnList = doc.SelectNodes("/locations/location[@country='" + currentCountry + "']");
foreach (XmlNode xn in xnList)
{
    currentName = xn.SelectSingleNode("/name").InnerText;
    currentClass = xn.SelectSingleNode("/class").InnerText;
}

我得到错误System.NullReferenceException: Object reference not set to an instance of an object.指向foreach循环内的第一行。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

删除forwardslash它应该可以正常工作:

  currentName = xn.SelectSingleNode("name").InnerText;
                currentClass = xn.SelectSingleNode("class").InnerText;

答案 1 :(得分:1)

好的,只需使用currentName = xn["name"].InnerText;即可。在帖子发布后10秒钟发现它:/