Je travaille sur un script Greasemonkey qui doit fonctionner sur chaque noeud entre deux autres. Actuellement, je reçois le premier noeud en utilisant une expression XPath (de plus en plus compliquée). J'ai une autre expression pour obtenir les nœuds "between", mais il contient deux fois l'expression initiale et devient plutôt long. Voici une version antérieure qui ne contenait deux « clauses »:Obtenir tous les nœuds entre le nœud actuel et un autre sans courant()?
var xpHeader = "//h2[a/@name='section-References' or a/@name='References']";
var xpContents = "//h2[a/@name='section-References' or a/@name='References']/following-sibling::*[following-sibling::h2[1] = //h2[a/@name='section-References' or a/@name='References']/following-sibling::h2[1]]"
Ce que je suis à la recherche est un moyen de sélectionner le « contenu » à partir d'un nœud de contexte plutôt que Réintégration l'expression originale à plusieurs reprises - que " header "L'expression va devenir beaucoup plus complexe très rapidement. Je sais que cela peut être fait en XSLT en utilisant la fonction current()
, mais bien sûr, ce n'est pas disponible en XPath vanille: Comme je tape cela, il me vient
<xsl:template match="//h2[a/@name='section-References' or a/@name='References']">
<xsl:for-each select="following-sibling::*[following-sibling::h2[1] = current()/following-sibling::h2[1]]">
<!-- do stuff -->
</xsl:for-each>
</xsl:template>
qu'à ce stade, il serait probablement plus facile à utiliser le DOM pour recueillir le contenu plutôt que XPath, mais je suis toujours intéressé de savoir si c'est quelque chose qui peut être fait.
La version originale du script est available on UserScripts.org.
Il n'est pas productif si le document XML sur lequel les expressions XPath sont exécutées n'est pas fourni. Personne ne peut même comprendre ce que les expressions XPath de la question sélectionnent. Comment peut-on s'attendre à ce que quelqu'un fournisse une solution? Je suis sur le point de downvoting, sinon édité. –
... le lien fourni contient à la fois la source complète et des liens vers des documents de test. Que veux-tu de plus? –
Il n'y a pas de document XML sur le lien fourni!Comment écrirait-on une expression XPath pour sélectionner quelque chose d'inconnu? –