0

前几天我开始学习 Xpath,我不清楚这项技术是否能够做到这一点:

---> 我有一个有很多行的表,该行总是包含一个带有可点击 href 的 img

<a href="thread.php?judgelock=1&threadid=134389">
  <img src="http://www.xxxxx.com/icons_wbb/icon12.gif" alt="Judge" title="Open to Judge" border=0>
</a>  

--->我现在用它来获取href:

(//img[@alt='Open'])[${i}]

其中 i 是 html 中的位置(1- 第一个,2- 第二个......)

--->我只想选择这个href,当有一个具有特定值(SPECIFIC_USER)的兄弟时:

<b>Elemezte:   SPECIFIC_USER</b>

或与给定孩子有兄弟姐妹(特定用户):

<a href="profile.php?username=SPECIFIC_USER">SPECIFIC_USER</a></b>

所以我不知道是否可以使用 XPATH 或仅使用 JavaScript,我复制了给定行之一的 html 源代码--->

 <tr align="center">
  <td class="tableb"></td>
  <td class="tablea" style="width:80%" align="left"><span class="normalfont">
  <a href="thread.php?threadid=134389">[2013.04.28]</a>
  <a href="thread.php?judgelock=1&threadid=134389">
  <img src="http://www.xxxxx.com/icons_wbb/icon12.gif" alt="Open to Judge" title="Open to Judge" border=0>
  </a>  
<b>Elemezte:   SPECIFIC_USER</b>
  </span><span class="smallfont">   
  </span></td>
  <td class="tableb">
    <span class="normalfont">
            <a href="javascript:who(134389)">7</a>
    </span>
  </td>
  <td class="tablea" style="width:20%"><span class="normalfont">
<a href="profile.php?username=SPECIFIC_USER">Clickbox</a>
</span></td>
  <td class="tableb"><span class="normalfont">58</span></td>
  <td class="tablea" nowrap="nowrap">&nbsp;</td>
  <td class="tableb" align="left"><table cellpadding="0" cellspacing="0" border="0" style="width:100%">
   <tr align="right" class="tableb_fc">
    <td align="right" nowrap="nowrap"><span class="smallfont"><b>Ma</b>, <span class="time">11:15</span><br />
    írta: 
<b>
<a href="profile.php?username=SPECIFIC_USER">SPECIFIC_USER</a></b>
</span></td>
   </tr>
  </table></td>
 </tr>
4

1 回答 1

1

您可以使用以下查询。它使用following-sibling轴获取以下<b>元素 text() 值并将其与Elemezte: SPECIFIC_USER. 如果匹配,将选择节点的href属性。<a>它只选择找到的第二个元素:

'//a[following-sibling::b/text() = "Elemezte:   SPECIFIC_USER"][2]/@href'

会给你什么:

"thread.php?judgelock=1&threadid=134389"
于 2013-05-05T10:35:12.550 回答