XPath特定の親ノードを持つすべての子を属性別に選択する

html-agility-pack xml xpath

質問

すべての子要素 、つまりidが親のdivtestRootの画像を選択したいとします。構造は不明です。理解のためにここで簡略化しました。それがXPath式であれば、それは素晴らしいでしょう。

        <div id="testRoot">

<div class="panel">
                    <a tabindex="-1" href="/mafuae/en/p/1236018">
                        <picture>
                            <source srcset="/medias/sys_master/images/images/h4e/hf5/8820729217054/NikonSlr-H-Tablet.jpg" media="(min-width: 768px)">
                            <img src="" alt="NikonSlr_H_Desktop.jpg">
                        </source>
                        </source></source></picture>
                    </a>
                </div>
            <div class="panel">
                    <a tabindex="-1" href="/mafuae/en/storespromotions">
                        <picture>
                            <source srcset="/medias/sys_master/images/images/h73/hd7/8818984321054/Ramadan2-14thMay-Tablet.jpg" media="(min-width: 768px)">
                            <img src="" alt="Ramadan2_14thMay_Desktop.jpg">
                        </source></source></source></picture>
                    </a>
                </div>
</div>

これは私が試みたものだが...

doc.DocumentNode.SelectNodes("//div[@id='hero']/div/div")

受け入れられた回答

id属性がhero //div[@id='hero']div要素の場合、これらのXPath式は次のように要素を選択します。

  • //div[@id='hero']/*はすべての要素を選択します。
  • //div[@id='hero']/imgはすべての img要素を選択します。
  • //div[@id='hero']//*その子孫要素をすべて選択します。
  • //div[@id='hero']//imgはすべての子孫 img要素を選択します。


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ