亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

xpath 查找包含 1 tr 和 1 th 的行

xpath 查找包含 1 tr 和 1 th 的行

FFIVE 2023-10-30 15:23:37
我需要幫助編寫 xpath 來查找僅包含第 1 個和 1 個 td 的表中的行示例 HTML<!DOCTYPE html><html><head>    <title></title></head><body>    <table>        <tr>            <th>test</th>            <td>abc</td>        </tr>        <tr>            <th>test1</th>            <td>abc</td>            <td>abc</td>        </tr>            <th>test2</th>            <td>abc</td>    </table></body></html>對于這個 html,我期望只有第一行和最后一行,如果該行包含 th 和 td 以外的任何內容,則應跳過'//table/tr[th and td]' 我到達了這個 xpath 但這將包括重復如果該行包含其他或任何東西td則不會過濾<a
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

這是可行的——不是很優雅,但是有效。我擴展了您的示例 html,引入了一些更多有問題的節點:


test = """

<!DOCTYPE html>

<html>

<head>

    <title></title>

</head>

<body>

    <table>

        <tr>

            <th>test</th>

            <td>abc</td>

        </tr>

        <tr>

            <th>test1</th>

            <td>abc</td>

            <td>abc</td>

        </tr>

        <tr>

            <th>test2</th>

            <td>abc</td>

        </tr>

        <tr>

            <a>test3</a>

            <td>abcd</td>

        </tr>

        <tr>

            <td>test4</td>

            <td>abcd</td>

        </tr>

    </table>

</body>    """


import lxml.html

doc = lxml.html.fromstring(test)

good_tags = ['th','td']

targs = doc.xpath('//tr')

for targ in targs:

    tr = targ.xpath('.//*')

    if len(tr)==2 and (tr[0].tag != tr[1].tag) and tr[0].tag in good_tags and tr[1].tag in good_tags:            

        print(lxml.html.tostring(targ).decode())

輸出:


<tr>

            <th>test</th>

            <td>abc</td>

        </tr>


<tr>

            <th>test2</th>

            <td>abc</td>

        </tr>


查看完整回答
反對 回復 2023-10-30
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

一班 XPath :

//tr[count (./*)=2 and count(./th)=1 and count(./td)=1]


查看完整回答
反對 回復 2023-10-30
  • 2 回答
  • 0 關注
  • 150 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號