私はGreasemonkeyスクリプトを作成しています。このスクリプトは、2つの他のノード間で各ノードを操作する必要があります。現在、(ますます複雑な)XPath式を使用して最初のノードを取得しています。 "between"ノードを取得する別の式がありますが、最初の式が2回含まれていてかなり長くなっています。ここでは2つだけ「の句」含まれる以前のバージョンです:私は何を探していますが、コンテキスト・ノードではなく、元の式を複数回再登録に基づいて「コンテンツ」を選択する方法です現在のノードと現在のノードの間にあるすべてのノードをcurrent()なしで取得しますか?
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]]"
は - 」というヘッダー "の表現はかなり複雑になります。私は、これはcurrent()
機能を使用してXSLTで行うことができます知っているが、当然のことながらバニラのXPathで利用できないこと:
<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>
私はこれを入力すると、この時点で、それはおそらくだろうと私に起こりますDOMをXPathよりもむしろコンテンツを収集するのに使いやすくしましたが、これができるかどうかはまだ分かっています。
スクリプトの元のバージョンはavailable on UserScripts.orgです。
XPath式が実行されているXML文書が提供されていない場合は、生産的ではありません。誰も、質問内のXPath式が何を選択しているのか理解できません。誰かが解決策を提供するとはどういうことでしょうか?私は編集しなければ、下降する寸前です。 –
...提供されたリンクには、テスト文書への完全なソースとリンクの両方が含まれています。何をもっと欲しかったのですか? –
提供されたリンクにはXML文書はありません!未知のものを選択するためにXPath式を書くにはどうすればよいでしょうか? –