2017-05-24 1 views
1

Je veux sélectionner tous les enfants dont les parents div avec id est testRoot. La structure est inconnue. Je l'ai simplifié ici pour comprendre le but. Si c'est l'expression XPath, ce sera génial.XPath Sélectionner tous les enfants avec un nœud parent spécifique par attribut

 <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/54/Ramadan2-14thMay-Tablet.jpg" media="(min-width: 768px)"> 
          <img src="" alt="Ramadan2_14thMay_Desktop.jpg"> 
         </source></source></source></picture> 
        </a> 
       </div> 
</div> 

C'est ce que je l'ai essayé, mais ...

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

Répondre

4

Pour l'élément div avec un attribut id de hero//div[@id='hero'], ces expressions XPath choisira des éléments comme suit:

  • //div[@id='hero']/* va sélectionner tous ses enfants éléments.
  • //div[@id='hero']/img va sélectionner tous ses enfantsimg éléments.
  • //div[@id='hero']//* va sélectionner tous ses éléments descendants.
  • //div[@id='hero']//img va sélectionner tous ses descendantsimg éléments.
+0

Je l'ai fait dans un long chemin, mais vous l'avez fait plus simple pour moi :). '// div [@ id = 'hero'] // img' est le code que je cherchais –