web-dev-qa-db-ja.com

XPath属性によって特定の親ノードを持つすべての子を選択します

すべての子、つまり親dividtestRootである画像を選択したいと思います。構造は不明です。ここでは、理解のために簡略化しています。 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")
8
DotNet Dreamer

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

  • //div[@id='hero']/*は、そのすべてのchildren要素を選択します。
  • //div[@id='hero']/imgは、そのすべてのchildrenimg要素を選択します。
  • //div[@id='hero']//*は、そのすべてのdescendent要素を選択します。
  • //div[@id='hero']//imgは、そのすべてのdescendentimg要素を選択します。
10
kjhughes