使用xpath查找表元素中的所有tr?

2024-06-08 05:34:57 发布

您现在位置:Python中文网/ 问答频道 /正文

def parse_header(table):
    ths = table.xpath('//tr/th')
    if not ths:
        ths = table.xpath('//tr[1]/td') # here is the problem, this will find tr[1]/td in all html file insted of this table

    # bala bala something elese

doc = html.fromstring(html_string)
table = doc.xpath("//div[@id='divGridData']/div[2]/table")[0]
parse_header(table)

我想在表中找到所有的tr[1]/td,但是table.xpath("//tr[1]/td")仍然在html文件中找到所有。如何在这个元素而不是所有的html文件中找到?


编辑:

    content = '''

<root>
    <table id="table-one">
        <tr>
            <td>content from table 1</td>
        <tr>
        <table>
             <tr>
                 <!-- this is content I do not want to get -->
                <td>content from embeded table</td>
            <tr>
        </table>
    </table>
</root>'''

root = etree.fromstring(content)
table_one = root.xpath('table[@id="table-one"]')
all_td_elements = table_one.xpath('//td') # so this give me too much!!!

现在我不想要嵌入的表内容,我该怎么做呢?


Tags: idparseishtmltablenotrootcontent

热门问题