我有一个HTML文件(来自Newegg),他们的HTML组织如下.其规格表中的所有数据均为" desc ",而每个部分的标题均为" 名称".'以下是来自Newegg页面的两个数据示例.
<tr>
<td class="name">Brand</td>
<td class="desc">Intel</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Core i5</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">LGA 1156</td>
Run Code Online (Sandbox Code Playgroud)
<tr>
<td class="name">Brand</td>
<td class="desc">AMD</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Phenom II X4</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">Socket AM3</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
最后,我希望有一个CPU(已经设置好)的类,它包含Brand,Series,Cores和Socket类型,用于存储每个数据.这是我能想到的唯一方法:
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
Run Code Online (Sandbox Code Playgroud)
并为其余的值执行此操作.我如何完成nextsibling并且有更简单的方法吗?
Dim*_*hev 187
我如何完成nextsibling并且有更简单的方法吗?
你可以使用:
tr/td[@class='name']/following-sibling::td
Run Code Online (Sandbox Code Playgroud)
但我宁愿直接使用:
tr[td[@class='name'] ='Brand']/td[@class='desc']
Run Code Online (Sandbox Code Playgroud)
这假定:
评估XPath表达式的上下文节点是所有tr元素的父级- 未在您的问题中显示.
每个tr元素只有一个td具有class属性值'name',只有一个td具有class属性值'desc'.
| 归档时间: |
|
| 查看次数: |
136856 次 |
| 最近记录: |