recupero di articoli ul li sotto la classe div usando il pacchetto agilità html

.net c# html html-agility-pack

Domanda

<div class="outer">
    <div class="divOne"></div>
    <div class="divContent">
       <h3>SomeTitle</h3>
       <h4>SomeSubtitle</h4>
       <ul>
          <li><a href="/someUrlx.htm">SomeUrl</a>
               <span> Nr of records under this url </span>
          </li>
       </ul>
       <h4>Some Other Subtitle</h4>
       <ul>
          <li><a href="/someUrlx.htm">SomeUrl</a>
              <span> Nr of records under this url </span>
          </li>
       </ul>
     </div>
</div>

Ancora una volta, voglio recuperare tutti gli elementi della lista non ordinata sotto la struttura html sopra

Sono in grado di recuperare contenuto di classe divContent usando

<div class="outer">
    <div class="divOne"></div>
    <div class="divContent">
       <h3>SomeTitle</h3>
       <h4>SomeSubtitle</h4>
       <ul>
          <li><a href="/someUrlx.htm">SomeUrl</a>
               <span> Nr of records under this url </span>
          </li>
       </ul>
       <h4>Some Other Subtitle</h4>
       <ul>
          <li><a href="/someUrlx.htm">SomeUrl</a>
              <span> Nr of records under this url </span>
          </li>
       </ul>
     </div>
</div>

ora ho bisogno di espressioni per recuperare gli oggetti ul li.

Risposta accettata

Questo dovrebbe funzionare bene:

IEnumerable<string> listItemHtml = htmlDoc.DocumentNode.SelectNodes(
    @"//div[@class='outer']/div[@class='divContent']/ul/li")
    .Select(li => li.OuterHtml);

Esempio: https://dotnetfiddle.net/fnDPLB


Aggiornamento basato sui commenti seguenti:

Se vuoi trovare solo <li> elementi appartenenti a <ul> elementi che sono fratelli diretti di un elemento <h4> con il valore "SomeSubtitle", ecco un'espressione XPath che dovrebbe funzionare:

IEnumerable<string> listItemHtml = htmlDoc.DocumentNode.SelectNodes(
    @"//div[@class='outer']/div[@class='divContent']/ul/li")
    .Select(li => li.OuterHtml);

Esempio: https://dotnetfiddle.net/AfinpV




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché