XPath按属性选择具有特定父节点的所有子项

时间:2017-05-24 10:48:15

标签: xml xpath html-agility-pack

我想选择所有孩子,即父div id testRoot 的图片。结构未知。为了理解目的,我在这里简化了它。如果是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")

1 个答案:

答案 0 :(得分:9)

对于div属性为id hero的{​​{1}}元素,这些XPath表达式将按以下方式选择元素:

  • //div[@id='hero']将选择所有元素。
  • //div[@id='hero']/*将选择所有 //div[@id='hero']/img元素。
  • img将选择所有后代元素。
  • //div[@id='hero']//*将选择所有后代 //div[@id='hero']//img元素。