如何使用xpath选择以下同级/ xml标记
发布时间:2020-12-16 08:14:10 所属栏目:百科 来源:网络整理
导读:我有一个HTML文件(从Newegg)和他们的HTML组织如下。其规格表中的所有数据都是“desc”,而每个部分的标题都在“名称”中。下面是来自Newegg页面的两个数据示例。 tr td class="name"Brand/td td class="desc"Intel/td/trtr td class="name"Series/td td clas
我有一个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> <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> 最后,我想要一个类的CPU(已经设置),包括一个品牌,系列,核心和套接字类型来存储每个数据。这是我可以想到的唯一的方式去做这个: if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'): CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text 并对其余的价值观这样做。我将如何完成下一步,是否有一个更简单的方法这样做?
您可以使用: tr/td[@class='name']/following-sibling::td 但我宁愿直接使用: tr[td[@class='name'] ='Brand']/td[@class='desc'] 这假设: >评估XPath表达式的上下文节点是所有tr元素的父级 – 未在您的问题中显示。>每个tr元素只有一个td,类属性值为’name’,只有一个td具有值为’desc’的类属性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |