4

import.io のトレーニング ブログと W3schools を経験した後でも、xpath オーバーライドを記述することは、私にとってまだ苦労しています。情報が常に正確に同じ場所にあるとは限らないサイトから属性値を抽出しようとしているので、xpath オーバーライドを記述する必要があることがわかっています。HTML は次のとおりです。

<dt>3TG:</dt> 
<dd>Does not contain 3TG</dd>
<dt>Contract Catalog Item:</dt>
<dd>Y</dd> 
<dt>Diameter:</dt>
<dd>3/8"</dd>
<dt>Diameter-Thread Size:</dt>
<dd>3/8"-16</dd>
<dt>Finish:</dt>
<dd>Zinc</dd>
<dt>Grade:</dt>
<dd>5</dd>
<dt>Length:</dt>
<dd>1"</dd>
<dt>Material:</dt>
<dd>Steel</dd>

xpathは

//*[@id="main"]/div[1]/div[4]/div/div[1]/div[1]/dl/dt[4]

私が試してみました

//*[@id="main"]/div[1]/div[4]/div/div[1]/div[1]/dl/dt[contains(text(), "Finish")]/following-sibling::dt/text()

//*[@id="main"]/div[1]/div[4]/div/div[1]/div[1]/dl/td/dd[.="Finish:"]/following::dd

しかし、運がありません。従兄弟か従兄弟かはわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

0
//*[text()="XXXX"]/following-sibling::*

XXXX を必要なものに変更します

EG: "3TG:" に関する情報を知りたい場合は、次のようになります。

//*[text()="3TG:"]/following-sibling::*

<dt>3TG:</dt> 
<dd>Does not contain 3TG</dd>

したがって、xPath は、タグに関係なく、TEXT "3TG:" を含む要素を見つけてから、次の兄弟 (その隣のもの) を調べます。

定義リストにより具体的にするために、次のように具体性を追加できます。

//dt[text()="3TG:"]/following-sibling::dd

<dt>3TG:</dt> 
<dd>Does not contain 3TG</dd>
于 2015-07-09T16:06:06.573 に答える