特定のレベルのすべてのノードを検索でき、特定の (グランド) 子ノードがある場合にのみ返される XPath 文字列 (VBA Excel 用) を探しています。これがどれほど「深く」ネストされているかに関係なく。Relationale: 特定の子がどのくらいネストされているかがわからないため、固定パスを作成できません。
以下の例の場合。ルート '' の直下にあり、'Test' という名前を含む子を持つすべてのノードを検索していますが、この子には関数 '10' が含まれていない可能性があります。ただし、機能「10」はより高いレベルで使用できます
XML 文字列:
<Program>
<AA name="1" function="01"/>
<BB name="2" function="10">
<CC name="Test" function="01"/>
</BB>
<DD name="Test" function="05"/>
<EE name="3" function="01">
<FF name="4" function="05">
<GG name="Test" function="10"/>
</FF>
</EE>
</Program>
必須の選択:
Item(0) = <BB name="2" function="10">
Item(1) = <DD name="Test" function="05">
次の XPath 式は、Program
'Test' という名前を含むノードを示します。
xmlDoc.selectNodes("/Program/*[.//@name='Test']")
「関数」に基づいて子をフィルタリングするにはどうすればよいですか