C# 为什么Xml文档的selectSingleNode具有空值?
这是我的XML文件:C# 为什么Xml文档的selectSingleNode具有空值?,c#,asp.net,.net,xml,C#,Asp.net,.net,Xml,这是我的XML文件: <Response> <Ip>120.63.40.84</Ip> <CountryCode>IN</CountryCode> <CountryName>India</CountryName> <RegionCode>07</RegionCode> <RegionName>Delhi</RegionName> <City>New De
<Response>
<Ip>120.63.40.84</Ip>
<CountryCode>IN</CountryCode>
<CountryName>India</CountryName>
<RegionCode>07</RegionCode>
<RegionName>Delhi</RegionName>
<City>New Delhi</City>
<ZipCode/>
<Latitude>28.6</Latitude>
<Longitude>77.2</Longitude>
<MetroCode/>
</Response>
但是,当我尝试读取这样的单个节点时:
XmlNode IPnode = doc.DocumentElement.SelectSingleNode("Response/Ip");
它给了我一个空节点。我已经调试了代码,并确认XML确实加载到XMLDocument对象中,但由于某些原因,我无法像这样访问单个节点。只需更改XPath以指示您正在尝试从根目录进行搜索
XmlNode IPnode = doc.DocumentElement.SelectSingleNode("/Response/Ip");
由于您仍在从文档元素进行搜索,因此也可以使用下面的代码
XmlNode IPnode = doc.DocumentElement.SelectSingleNode("Ip");
一个比@ryadavilli更简单、也许更快的实现(这一步是XPath表达式解析)是:
XmlNode IPnode = doc.DocumentElement["Ip"];
。。。它应该找到document元素的第一个子元素,该元素的标记名为
“Ip”
那么您是否有与xml关联的名称空间,我想您需要它
XmlNode IPnode = doc.DocumentElement["Ip"];