Récupère toutes les données de table dans un seul fichier HtmlNodeCollection c #

c# html-agility-pack web-scraping

Question

J'ai besoin de récupérer tous les tr de toutes les tables en utilisant HTML Agility Pack.

HTML:

<section class="content-section" id="more">
    <div class="row">
        <div class="col-xs-6"></div>
        <div class="col-xs-6">
            <h2>Specs</h2>
            <div>
                <div>
                    <table>
                        <thead>
                            <tr><th colspan="2"> test</th></tr>
                        </thead>
                        <tbody>                         
                            <tr><td>2</td><td>b</td></tr>
                            <tr><td>1</td><td>a</td></tr>
                        </tbody>
                    </table>                                    
                    <table>
                        <tbody>
                            <tr><td>3</td><td>c</td></tr>
                            <tr><td>4</td><td>d</td></tr>               
                        </tbody>
                    </table>
                </div>              
            </div>
        </div>      
    </div>  
</section>

C #:

HtmlNodeCollection featuresNode = document.DocumentNode.SelectNodes("//*[@id='more']/div/div[2]/div/div[1]/table/tbody/tr");

Je ne suis en mesure d'obtenir la première table de tr , mais pas obtenir toutes deux tables tr dans HtmlNodeCollection .

Réponse acceptée

Pour obtenir tous les nœuds tr y compris celui dans la thead , mettez à jour votre XPath pour:

"//*[@id='more']/div/div[2]/div/div[1]/table//tr"

Ce XPath simplifié devrait également fonctionner:

"//*[@id='more']//tr"

Si vous voulez seulement le tr de tbody , utilisez:

"//*[@id='more']//tbody//tr"

Ou hors tr de thead , utilisez:

"//*[@id='more']//tr[not(ancestor::thead)]"



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi