phpBB论坛的XPath表达式

时间:2010-05-26 15:50:32

标签: xpath greasemonkey phpbb

我正在写一个Greasemonkey脚本,我想在phpBB2论坛上更改论坛帖子的文本,使用XPath选择在某个用户名之后发布的帖子的主体,但整个事情是巨人一塌糊涂的桌子。

<tr>
  <td>
    <span class="name">
      <a>
      <b>username</b>
    </span>
    <span></span>
  </td>
  <td>
    <table>
      <tbody>
        <tr></tr>
        <tr></tr>
        <tr>
          <td>
            <span class="postbody">text of post</span>
            <span></span>
          </td>
        </tr>
      </tbody>
    </table>
  </td>
</tr>

我需要获得b标签中的用户名等于某个名称后发生的postbody span,然后弄乱文本。以下是我尝试这样做的方法:

var postguy = document.evaluate('fffffff', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < postguy.snapshotLength; i++) {
    thisLink = postguy.snapshotItem(i);
    //then do something with the post
}

1 个答案:

答案 0 :(得分:3)

我会这样做:

//tr[.//b/text()='username']//span[@class='postbody']

要与评论保持一致,您可以通过限制b标记的位置来缩小范围:

//tr[.//span[@class='name']//b/text()='username']//span[@class='postbody']
该死的!对于那些@来说,我太急了。慢慢来,有时会闻到@