From: jerome.basso (jerome.basso@free.fr)
Date: 13/08/2001 - 14:16
bonjour,
je dispose d'un XML "racine" qui inclue d'autres XML suivant la structure :
<process>
<summary>
<sub_processes>
<include href="file://J:/wrk/jb/cod3/xml-content/hrm.xml"
name="Human resource management process"/>
<include href="file://J:/wrk/jb/cod3/xml-content/hre.xml"
name="Education process"/>
<include href="file://J:/wrk/jb/cod3/xml-content/hrr.xml"
name="Recruiting process"/>
</sub_processes>
</summary>
</process>
Pour des besoins de navigation dans mes HTML résultats, je dois dans le XML
inclus, récupérer le <include> précédent et le <include> suivant (s'ils
existent).
Par exemple, le document HTML généré à partir de hre.xml doit avoir un lien
vers hrm.html et hrr.html.
Dans le stylesheet que j'applique à chaque <include>, je parviens à
récupérer un lien vers le <include> considéré (1ère étape), mais je n'arrive
pas à placer le preceding (ou preceding-sibling) et le following (ou
following-simbling)dans mon XPATH pour récupérer les "voisins".
Voila le XPATH en question :
<A>
<xsl:attribute name="HREF">
<xsl:value-of
select="substring-after(substring-before(string(document(concat(concat('../.
./xml-content/',string(@ancestor)),'.xml'))/process/summary/sub_processes/in
clude[substring-after(substring-before(string(@href),'.xml'),'content/')=$fi
lename]/@href),'.xml'),'content/')"/>.html</xsl:attribute>
</A>
Je suis désolé pour les traitements sur les chaines de caractères qui
alourdissent ce XPATH... mais ils sont nécessaires pour extraire uniquement
le nom du fichier et pas son chemin et son extension.
Avant "/process", c'est le nom du fichier "racine", ensuite son arborescence
jusqu'à "include" et ensuite le prédicat pour retrouver le nom du include
dans lequel on se trouve.
Je suppose que le preceding:: doit venir avant include, mais cela ne marche
pas.
J'espère que j'ai été assez clair, même si je vois bien que ce n'est pas
évident à suivre.
Merci d'avance pour les courageux.
Jérôme
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|