1

xPathNavigator.evaluate()呼び出しがノードを返さない理由を確認する方法はありますか?

たとえば、次のxmlドキュメントがあるとします。

<Vehicles>
   <car>
      <wheels>4</wheels>
      <seats>5</seats>
   </car>
</Vehicles>

および次のxPath式:

//Vehicles[((car[wheels = 4 and seats = 2]))]

ホイールの数ではなく、「seats = 2」という句が原因で、ノードが選択されなかったことを示す何らかの表示が必要です。

これは何らかの方法で可能ですか?

4

2 に答える 2

2

「なぜ」は、自動化できるような質問ではありません。XPath 式でノードが選択されない理由は無数にあります。ノードが間違った名前空間にある場合はどうなりますか? 「//Vehicles」ではなく「//vehicles」と書いたら?

最善の方法は、チェックしたい条件の種類を定義してテストすることです。

于 2012-04-04T16:34:16.327 に答える
0

次の xPath 式:

//Vehicles[((car[wheels = 4 and seats = 2]))] 

車輪の数ではなく、「seats = 2」という句のためにノードが選択されなかったという何らかの兆候が欲しいです。

これは何らかの形で可能ですか?

これらの式を使用すると、これが可能になります。

//Vehicles[car[wheels = 4]]

ここで、結果が null (または XmlNode の空のコレクション) でない場合は、次の式:

//Vehicles[car[wheels = 4][seats = 2]]

が 0 ノードを選択した場合、その理由は、car4 つの車輪を持つ子が存在するが、正確に 2 席しかない子がいないためです。

于 2011-11-11T14:17:51.463 に答える