Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: Encore une énigme XSL...

[xml-tech] Re: Encore une énigme XSL...

Auteur: Fabrice Estiévenart <fe@cetic.be>
Date: 23/04/2003 - 07:39
X-Mailer: QUALCOMM Windows Eudora Version 5.1

Le 'hic' dont vous parlez est sans doute le fait que la balise <F>
n'apparaisse pas dans le document résultat ;o)
Même si ce défaut est facile à repérer, il est beaucoup moins évident à
expliciter !!! En effet, je ne comprends pas la cause exacte de ce
phénomène. Pourriez-vous m'éclairer sur ce sujet ?

Merci d'avance,

Fabrice

At 15:37 22/04/2003 +0200, you wrote:
>Bonjour,
>
> > -----Original Message-----
> > From: Fabrice Estiévenart [mailto:fe@cetic.be]
> > Sent: mardi 22 avril 2003 11:47
> > To: xml-tech@xmlfr.org
> > Subject: [xml-tech] Encore une énigme XSL...
> >
> > Bonjour,
> >
> > J'aimerais transformer un document XML tel celui-ci :
> > [...en] un document
> > semblable à celui-ci :
> > [...]
> > La feuille de style suivante me donne des résultats satisfaisants mais ne
> > permet pas de rassembler les éléments <E> et <F> dans le même élément
> > global <element att="y"> :
> > [...]
> > Est-ce possible avec XSL ? Si oui, quelqu'un aurait-il une idée du code ou
> > des fonctions à utiliser ? Si non, quelles sont les autres possibilités ?
> > DOM ? SAX ?
>
>Une bonne et une mauvaise nouvelle :
>* la bonne : il existe une classe de transformations "qui répond à votre
>question..." -- en utilisant une technique "bien connue" pour solutionner le
>cœur de ce type de problème; à savoir, les regroupements de nœuds en XSLT
>(ici, dans votre cas, sur la valeur de l'attribut "att") -- il s'agit de la
>méthode de Steve Muench (cf. "[muenchian method]")
>
>* la mauvaise : "qui y répond... ou presque", hélas (mais il s'en faut de
>peu : je vous laisse trouver le "hic" et y réfléchir -- car cela dépend
>peut-être d'une reformulation de votre besoin :)
>
>à vous de voir, bon courage pour la suite :
>
>-- data.xml
><?xml version="1.0" ?>
><A att="z">
> <B>
> <D/>
> <E att="y">
> <H/>
> <I/>
> </E>
> <F att="y"/>
> </B>
> <C att="x">
> <G/>
> </C>
></A>
>
>-- att-group.xsl
><?xml version="1.0" ?>
><xsl:transform
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
>
><xsl:key name="elements-by-att" match="//*" use="@att" />
>
><xsl:template match="/">
><root>
> <xsl:for-each select="//*[@att][count(. | key('elements-by-att', @att)[1])
>= 1]">
> <element att="{@att}">
> <xsl:copy>
> <xsl:apply-templates />
> </xsl:copy>
> </element>
> </xsl:for-each>
></root>
></xsl:template>
>
><xsl:template match="*">
><xsl:choose>
> <xsl:when test="@att">
> <element ref="{@att}" />
> </xsl:when>
> <xsl:otherwise>
> <xsl:copy>
> <xsl:apply-templates
> select="*[@att][count(. | key('elements-by-att', @att)[1]) != 1] |
>*[not(@att)]" />
> </xsl:copy>
> </xsl:otherwise>
></xsl:choose>
></xsl:template>
>
></xsl:transform>
>
>-- result.xml
><?xml version="1.0" ?>
><root>
> <element att="z">
> <A>
> <B>
> <D/>
> <element ref="y" />
> </B>
> <element ref="x" />
> </A>
> </element>
> <element att="y">
> <E>
> <H />
> <I />
> </E>
> </element>
> <element att="x">
> <C>
> <G />
> </C>
> </element>
></root>
>
> > Merci d'avance pour votre aide et bravo pour ce forum très enrichissant,
>
>(Merci pour la liste :)
>
> > Fabrice
>
>[muenchian method]
>* http://www.jenitennison.com/xslt/grouping/muenchian.html
>
>Cordialement,
>Cyril
>
>
>____________________________________________________________________________
>
>Ce message électronique et tous les fichiers attachés qu'il contient sont
>confidentiels et destinés exclusivement à l'usage de la personne à laquelle
>ils sont adressés. Si vous avez reçu ce message par erreur, merci de le
>retourner à son émetteur. La publication, l'usage, la distribution,
>l'impression ou la copie non autorisée de ce message et des attachements
>qu'il contient sont strictement interdits.
>
>This e-mail and any files transmitted with it are confidential and intended
>solely for the use of the individual to whom it is addressed. If you have
>received this email in error please send it back to the person that sent it
>to you. Unauthorized publication, use, dissemination, forwarding, printing
>or copying of this email and its associated attachments is strictly
>prohibited.
>
>____________________________________________________________________________
>
>
>
>
>--
>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)

--
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)
Received on Wed Apr 23 09:39:47 2003

Archive générée par hypermail 2.1.8 le 16/02/2007 - 11:12 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement