Html 用于<;td>;与<;th>;斯威夫特3和卡纳

Html 用于<;td>;与<;th>;斯威夫特3和卡纳,html,xpath,Html,Xpath,我有如下HTML表格数据: <table class="table simple-stat-table item-table"> <thead> <tr> <th>Item A</th> <th>Item B</th> <th>Item C</th> <th>

我有如下HTML表格数据:

<table class="table simple-stat-table item-table">
    <thead>
        <tr>
            <th>Item A</th>
            <th>Item B</th>
            <th>Item C</th>
            <th>Item D</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>
                <div class="media item-minimal align-items-center">
                    <img class="d-flex mr-4" src=""><h5>Item A Column Data</h5>
                    </div>
                </div>
            </th>
            <td>Item B Column Data</td>
            <td>Item C Column Data</td>
            <td>Item D Column Data</td>
        </tr>
    </tbody>
</table>
但是,当我尝试以下同级
时,我没有返回任何数据,我尝试了以下方法:

doc.xpath("//th[contains(text(), 'Item B')]/following-sibling::td")

doc.xpath("//td[//th[contains(text(), 'Item B')]]")

doc.xpath("//th[contains(text(), 'Item B')]/preceding-sibling::td")

doc.xpath("td[contains(preceding-sibling::text(), 'Item B')]")

doc.xpath(".//tr[th='Item B']/td")

doc.xpath("//td[../th='Item B']")
有什么建议吗?或者我做了什么/错过了什么

很明显,我在寻找基于th文本的td文本。


提前感谢您的帮助。

那些
th
td
不是兄弟姐妹,因为他们有不同的父母
//td[//th]
表示带有子代
th
td
-以及错误表达式

您可以尝试以下XPath:

//td[starts-with(text(), ./preceding::th[.="Item B"])]

你的解决方案非常有效!上面的数据只是这个问题的测试数据,我会接受答案,但是当我在实际数据上使用这个解决方案时,它不起作用,表的结构完全相同。。?如果你想进一步帮助我,让我知道,否则,谢谢你的快速和有益的回应。
//td[starts-with(text(), ./preceding::th[.="Item B"])]