J'écris un script Greasemonkey, et je voulais changer le texte d'un message sur un forum phpBB2 en utilisant XPath pour sélectionner le corps de la publication qui se produit après un certain nom d'utilisateur, mais le tout est un gâchis géant de tables.Expression XPath pour un forum phpBB
<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>
J'ai besoin de la durée postbody qui se produit après le nom d'utilisateur dans la balise b est égal à un certain nom, puis mess avec le texte. Voici comment je suis en train de le faire:
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
}
Donnera un faux positif si quelqu'un met le nom d'utilisateur magique en gras dans leur texte de message, j'imagine - je pense que nous devons restreindre la recherche du nom d'utilisateur à la portée de la classe 'name'. – AakashM
@AakashM: Une bonne suggestion. Je vais ajouter la restriction. – Welbog
Vous devez mettre un @ devant les classes. – Biff