如果存在于XmlNodeList C#中的XML节点上

时间:2015-06-23 19:04:02

标签: c# xml exists xmlnodelist

如何检查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>

1 个答案:

答案 0 :(得分:0)

只需测试null ...

XmlNode subNode;
foreach (XmlNode node in xList)
{    
    subNode = node["service"];
    if (subNode != null)
    {
        serviceVal = subNode.InnerText;
    }
    else 
    {
        serviceVal = string.Empty;
    } 
}