Comment sélectionner les balises frères / xml suivantes à l’aide de xpath

J’ai un fichier HTML (de Newegg) et leur code HTML est organisé comme ci-dessous. Toutes les données dans leur tableau de spécifications sont « desc » tandis que les titres de chaque section sont dans « nom » . «Vous trouverez ci-dessous deux exemples de données provenant des pages Newegg.

 Brand Intel   Series Core i5   Cores 4   Socket LGA 1156 

  Brand AMD   Series Phenom II X4   Cores 4   Socket Socket AM3  

En fin de compte, je voudrais avoir une classe pour un processeur (qui est déjà configuré) qui consiste en un type de marque, série, cores et socket pour stocker chacune des données. C’est la seule façon de penser à cela:

 if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'): CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text 

Et faire cela pour le rest des valeurs. Comment pourrais-je accomplir le lien et y a-t-il un moyen plus facile de le faire?

Comment pourrais-je accomplir le lien et y a-t-il un moyen plus facile de le faire?

Vous pouvez utiliser :

 tr/td[@class='name']/following-sibling::td 

mais je préfère utiliser directement :

 tr[td[@class='name'] ='Brand']/td[@class='desc'] 

Cela suppose que :

  1. Le nœud de contexte par rapport auquel l’expression XPath est évaluée est le parent de tous les éléments tr – non indiqué dans votre question.

  2. Chaque élément tr n’a qu’un seul td avec l’atsortingbut de class 'name' et un seul td avec l’atsortingbut de class valorisé 'desc' .

Essayez l’axe following-sibling ( following-sibling::td ).