3 つの異なるノードのうちの 1 つを C# プログラムに解析したい XML ファイルがあります。これら 3 つの異なる XPath のうち 1 つだけが XML ファイルに対して有効であり、それぞれが可能な限り具体的です。XPath のサンプルを以下に示します。
/ns:root/ns:foo/ns:bar[@barattr='{0}']/ns:foobar{1}/ns:{2} |
/ns:root/ns:foo/ns:bar[@barattr='{0}']/ns:{2} |
/ns:root/ns:foo/ns:bar[@barattr='{0}' and @{2}]
コードでは String.Format を使用してこれらのクエリを動的に生成しているため、これらにはフォーマッターがあることに注意してください。
私の質問は、最初の XPath がノードを返す場合 (つまり、ns:root/ns:foo/ns:bar[@barattr='{0}']/ns:foobar{1}/ が存在する場合) に SelectSingleNode が行うことです。 ns:{2})? それでも 3 つの XPath をすべて照会して、最初の XPath だけを返すのでしょうか、それともその時点で停止することがわかるでしょうか? それでも3つすべてを照会する場合、一致が見つかったら停止することをC#またはXPathで示す方法はありますか?
助けてくれてありがとう!