Как я могу проверить, существует ли узел в XmlNodeList? Я заполнил список, и мне нужно запросить определенные значения. вот как я это делаю.
var xList = xelRoot.SelectNodes("aaa/bbb/ccc/ddd/eee/fff/ggg/hhh");
foreach (XmlNode node in xList)
{
serviceVal = node["service"].InnerText.ToString();
}
бывают случаи, когда сервисный узел не существует. и когда это происходит, я получаю сообщение об ошибке «Ссылка на объект не установлена на экземпляр объекта».
есть ли способ вернуть строковое значение, если узел не существует?
вот образец xml. обратите внимание, что правило 1 не имеет сервисного узла
<entry name="aaa">
<from>any</from>
<to>any</to>
<source>any</source>
<destination>any</destination>
<source-user>any</source-user>
<category>any</category>
<service>any</service>
</entry>
<entry name="Rule 1">
<from>any</from>
<to>any</to>
<source>any</source>
<destination>any</destination>
<source-user>any</source-user>
<category>any</category>
</entry>
node
? (Не похоже, что этоXmlNodeList
...) Короткая, но полная программа действительно помогла бы прояснить проблему, а если вы можете использовать LINQ to XML, вполне вероятно, что это также приведет к более простому коду. - person Jon Skeet   schedule 23.06.2015