在单个 HtmlNodeCollection c# 中获取所有表 tr 数据

我需要tr使用 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");

我只能获得第一张桌子,tr但无法获得所有两张桌子tr。HtmlNodeCollection


慕容森
浏览 430回答 1
1回答

BIG阳

要获取tr包括 in 在内的所有节点thead,请将您的更新XPath为:"//*[@id='more']/div/div[2]/div/div[1]/table//tr"这种简化XPath也应该起作用:"//*[@id='more']//tr"如果您只想要trfrom&nbsp;tbody,请使用:"//*[@id='more']//tbody//tr"tr或从中排除thead,使用:"//*[@id='more']//tr[not(ancestor::thead)]"
打开App,查看更多内容
随时随地看视频慕课网APP