J'ai un document qui ressemble àPuis-je créer dynamiquement cette requête XPath dans XSLT?
<root>
<element>
<subelement1 />
<subelement2 />
</element>
<element>
<subelement2 />
<subelement1 />
</element>
</root>
Dans ma feuille XSLT dans le contexte de /element[2]/[someNode]
Je veux obtenir un numéro qui représente la distance de /element[1]/[someNode]
(à savoir le nombre de frères et sœurs précédents de /element1/[someNode]
). Par exemple, dans le contexte de /element[2]/subelement1
je voudrais avoir un moyen d'obtenir le numéro 2, la distance de /element[1]
à /element[1]/subelement2
. J'ai seulement besoin de la distance du nom de noeud donné de la première instance de <element>
.
Intuitivement Je pensais que je pouvais construire cela comme
<xsl:variable name="nodename" select="name()" />
<xsl:value-of select="/element[1]/$nodename/preceding-sibling::*" />
mais malheureusement cette fiche ne compile pas. Est ce que j'essaye de réaliser possible dans XSLT?
Votre exemple semble inconsistent: dans le contexte de '/ element [2]/[someNode]' vous voulez trouver '/ element [1]/[someNode]' avec comme exemple dans '/ element [2]/subelement1' vous voulez trouver le distance de '/ element [1]' à '/ element [1]/sous-élément 2' - est-ce que [someNode] est ici subelement2 ou subelement1? –
Voir aussi http://stackoverflow.com/questions/4630023/dynamic-xpath-in-xslt – Vadzim