🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #256

xslt fabriquer un sous arbre pour pouvoir le parser à nouveau ?

#256
From: Une Bévue
Date: Thu, 16 Feb 2012 17:41
96 lines
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-mail

Show 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