5

XPATH使用しているノードにサブノードが含まれているかどうかを確認する方法はありますか?

特定のノードに子がある場合とない場合があるxmlファイルがあります。これをチェックして、NullReferenceExceptionsが多すぎないようにする方法!?

以下の例を確認してください。

var text = xml.SelectSingleNode("/Document/Tests/Test").InnerText;

私が使用している現在のxmlファイルにTestノードが正常に機能しているTestsが、別のxmlファイルではTestsノードに何も含まれておらず、明らかな理由もなく存在している場合!?

これを行うためのコマンドがXPATHにありますか?何かのようなもの!!:

"/Document/Tests[NodeExist(Test)]

4

3 に答える 3

4

/Document/Tests[Test]子としてノードTestsのみを持つノードを提供します。Test

に対して選択を実行し/Document/Tests、後で呼び出しelement.GetElementsByTagName("Test").Count > 0て、少なくとも1つのTestノードがあることを確認することもできます。このようにして、例外なく空の文字列またはエラーメッセージをプログラムで表示できます。

于 2012-08-09T10:28:33.730 に答える
1

はい次のxpath"/Document / Tests [node()]"を使用できます。これにより、子ノードを持つすべてのテストノードが得られます。ノード名とノードタイプを指定するようにさらに改善できます。

Testという子ノードを持つ特定のノードが必要な場合は、この「/ Document /Tests[Test]」を使用します

MSDNhttp ://msdn.microsoft.com/en-us/library/ms256086.aspxにあるその他の例

于 2012-08-09T10:25:05.267 に答える
0

本当に速いグーグルはこれを与えました:

/Document/Tests/not(*)
于 2012-08-09T10:20:32.447 に答える