Article View: fr.comp.text.xml
Article #256xslt fabriquer un sous arbre pour pouvoir le parser à nouveau ?
From: Une Bévue
Date: Thu, 16 Feb 2012 17:41
Date: Thu, 16 Feb 2012 17:41
96 lines
4777 bytes
4777 bytes
je fais une recherche sur un fichier xml correspondant � mon carnet
d'adresse.
le but est de repr�senter en html le contenu du carnet d'adresse en 3
colonnes avec des lignes de couleurs altern�es.
j'arrive tr�s bien � faire �a quand la s�lection des personnes se fait
sur un attribut "group" :
<xsl:if test="($mode = 'group')">
<div id="un">
<xsl:apply-templates select="people/person[@group=$group]"
mode="group_trois">
<xsl:sort select="name/text()" lang="{$lang}" data-type="text"
order="ascending" case-order="upper-first"/>
<xsl:with-param name="col" select="1"/>
<xsl:with-param name="col_parite" select="1"/>
</xsl:apply-templates>
</div>
<div id="zero">
<xsl:apply-templates select="people/person[@group=$group]"
mode="group_trois">
<xsl:sort select="name/text()" lang="{$lang}" data-type="text"
order="ascending" case-order="upper-first"/>
<xsl:with-param name="col" select="0"/>
<xsl:with-param name="col_parite" select="1"/>
</xsl:apply-templates>
</div>
<div id="deux">
<xsl:apply-templates select="people/person[@group=$group]"
mode="group_trois">
<xsl:sort select="name/text()" lang="{$lang}" data-type="text"
order="ascending" case-order="upper-first"/>
<xsl:with-param name="col" select="2"/>
<xsl:with-param name="col_parite" select="0"/>
</xsl:apply-templates>
</div>
</xsl:if>
</xsl:if>
mais quand je fais une recherche sur le nom de la personne ou sur une
partie d'un num�ro de t�l�phone, par exemple, je ne vois pas trop
comment faire.
enfin, j'ai une id�e, mais je ne sais pas comment l'impl�menter.
ce que je suppute :
si la personne correspond au crit�re de recherche, je l'ajoute dans un
arbre "r�sultat" et ensuite je traite cet arbre comme je le faisait avant.
bon je prend un exemple concret, soit une recherche sur un des num�ros
de t�l�phone, le xml est ainsi :
<person company="true" id="452D92BB-268C-11D8-B59C-000A95B14F2E"
image="/AB2Html/Images/company.png">
<name>Association Lacanienne Internationale</name>
<phones>
<phone type="work">01 42 60 14 43</phone>
<phone type="work fax">01 42 60 14 34</phone>
</phones>
<emails>
<email type="work">secretariat@freud-lacan.com</email>
</emails>
<note>Biblioth�que : ma je 13h30 - 17h30
de pref. Le mardi</note>
</person>
si je recherche toutes les personnes qui ont 42 dans leur num�ro de t�l,
je dois ajouter celle-ci et d'autres, donc je voudrait cr�er un
"sous-arbre" r�sultat du genre :
<result>
<person ...>
<name>Association Lacanienne Internationale</name>
<phones>
<phone type="work">01 42 60 14 43</phone>
<phone type="work fax">01 42 60 14 34</phone>
</phones>
<emails>
<email type="work">secretariat@freud-lacan.com</email>
</emails>
<note>Biblioth�que : ma je 13h30 - 17h30
de pref. Le mardi</note>
</person>
...
<person ...
...
</person>
</result>
et ensuite au lieu de faire comme pr�c�demment :
<xsl:apply-templates select="people/person[@group=$group]" ...
je ferai quelque chose du genre :
<xsl:apply-templates select="/result/people/person" ...
mais voil� je ne sais pas comment copier les r�sultats de ma recherche
dans un arbre...
Technical Details
Message-ID:
<4f3d3fe1$0$2244$426a74cc@news.free.fr>Path:
arc1-ca.pugleaf.net!wr5ni32594pbc.0!nntp.google.com!news1.google.com!eweka.nl!lightspeed.eweka.nl!194.134.4.91.MISMATCH!news2.euro.net!novso.com!nerim.net!usenet-fr.net!proxad.net!feeder1-2.proxad.net!212.27.60.64.MISMATCH!cleanfeed3-b.proxad.net!nnrp14-1.free.fr!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 114f60,bf650aa3b5c61040,start
X-Google-NewGroupId: yes
X-Google-Attributes: gid8a75585569,domainid0,public,usenet
X-Google-Language: FRENCH,ASCII
Received: by 10.68.238.198 with SMTP id vm6mr4316774pbc.3.1329414114451;
Thu, 16 Feb 2012 09:41:54 -0800 (PST)
Path: arc1-ca.pugleaf.net!wr5ni32594pbc.0!nntp.google.com!news1.google.com!eweka.nl!lightspeed.eweka.nl!194.134.4.91.MISMATCH!news2.euro.net!novso.com!nerim.net!usenet-fr.net!proxad.net!feeder1-2.proxad.net!212.27.60.64.MISMATCH!cleanfeed3-b.proxad.net!nnrp14-1.free.fr!not-for-mail
Date: Thu, 16 Feb 2012 18:41:52 +0100
From: Une Bévue <unbewusstsein@fai.invalid>
Organization: OEdipe Roi
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120208 Thunderbird/10.0.1
MIME-Version: 1.0
Newsgroups: fr.comp.text.xml
Subject: xslt fabriquer un sous arbre pour pouvoir le parser à nouveau ?
Lines: 96
Message-ID: <4f3d3fe1$0$2244$426a74cc@news.free.fr>
NNTP-Posting-Date: 16 Feb 2012 18:41:53 MET
NNTP-Posting-Host: 82.226.217.239
X-Trace: 1329414113 news-1.free.fr 2244 82.226.217.239:46044
X-Complaints-To: abuse@proxad.net
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit