2

ノードが 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>
4

1 に答える 1

1

単にテストするnull...

XmlNode subNode;
foreach (XmlNode node in xList)
{    
    subNode = node["service"];
    if (subNode != null)
    {
        serviceVal = subNode.InnerText;
    }
    else 
    {
        serviceVal = string.Empty;
    } 
}
于 2015-06-23T19:17:34.320 に答える