Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1940 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  XSL:traiter les lignes XML dans l'ordre malgrès du text intercalé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

XSL:traiter les lignes XML dans l'ordre malgrès du text intercalé

n°786643
le_moustiq
Posté le 05-07-2004 à 09:49:23  profilanswer
 

voila une partie de ma source xml:
 
<text:p text:style-name="P1">
  <text:span text:style-name="T1">Normal</text:span>
  text intercalé
  <text:span text:style-name="T1"> normal</text:span>
</text:p>
 
je voudrais(une fois avoir matché text:p) traiter les trois lignes intérieur dans l'ordre.
C'est-à-dire faire un apply-templates puis reporter le text puis le deuxième apply-templates.
 
Ceci etant généralisable à plein de balises text:span bien sur.Le text intercalé pouvant se trouver à la première ligne ou entre 2 text:span n'importe lesquelles  
 
si vous pouvez m aider ce serai cool.
merci
ps: ce que j avai fait mais qui n est pas bon c etait:
             <xsl:value-of select="text()"/>
             <xsl:apply-templates select="text:span"/>
puisque il ecrit d abord le text avant de traiter la premiere balise.
 
 
soumetez moi au moins vos idees de résolution car là je suis a court.
ca me permettra peut etre avec plusieur petites idees d aboutir a qqch de bien
merci


Message édité par le_moustiq le 06-07-2004 à 14:31:18
mood
Publicité
Posté le 05-07-2004 à 09:49:23  profilanswer
 

n°788077
le_moustiq
Posté le 06-07-2004 à 14:27:16  profilanswer
 

Est ce que quelqu'un sait comment faire ca, ca repondrai a mon probleme:
Une méthode consisterai a reconnaitre lorsque du text suit une balise fermante de xml, ou alors precede une balise ouvrante de xml.
du coup je ferai deux templates differents.
si qqun sait faire cela en xsl, je suis preneur.
merci
 
 
soumetez moi au moins vos idees de résolution car là je suis a court.
ca me permettra peut etre avec plusieur petites idees d aboutir a qqch de bien
merci


Message édité par le_moustiq le 06-07-2004 à 14:32:35
n°788310
avander
Posté le 06-07-2004 à 17:02:48  profilanswer
 

J'ai fait un ptit exemple qui devrais t'aider un peu
 

Code :
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <p>
  3. text1
  4. <span>Spanned1</span>
  5. text2
  6. <span>Spanned2</span>
  7. text3
  8. </p>


 
mon stylesheet  

Code :
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.   <xsl:output method="html"/>
  4.   <xsl:template match="/">
  5.     <HTML>
  6.       <HEAD/>
  7.       <BODY>
  8.         <xsl:apply-templates/>
  9.       </BODY>
  10.     </HTML>
  11.   </xsl:template>
  12.   <xsl:template match="p">
  13.     <P>
  14.       <xsl:apply-templates/>
  15.     </P>
  16.   </xsl:template>
  17.   <xsl:template match="span">
  18.     <SPAN>
  19.       <xsl:apply-templates/>
  20.     </SPAN>
  21.   </xsl:template>
  22.   <xsl:template match="p/text()">
  23.     <xsl:value-of select="."/>
  24.   </xsl:template>
  25. </xsl:stylesheet>


 
et le résultat

Code :
  1. <HTML>
  2. <HEAD>
  3. <META http-equiv="Content-Type" content="text/html; charset=UTF-16">
  4. </HEAD>
  5. <BODY>
  6. <P>
  7. text1
  8. <SPAN>Spanned1</SPAN>
  9. text2
  10. <SPAN>Spanned2</SPAN>
  11. text3
  12. </P>
  13. </BODY>
  14. </HTML>


 
faut fignoler un peu j'ai pas pris en compte ton namespace text: par exemple, j'ai mis les balises HTML en capitales dans le stylesheet pour que tu vois ce qu'ils s'y passe, pour du xhtml faut mettre en miniscules. J'utilise le parser MSXML 4.  
 
A plus.
 
PS: Fais gaffe il y a un smilie qui persiste à s'incruster dans le code du stylesheet


Message édité par avander le 06-07-2004 à 17:11:03
n°788760
le_moustiq
Posté le 07-07-2004 à 09:46:18  profilanswer
 

merci énormément, ca marche niquel, il me reste quelque retouche a faire par rapport à ce que je voulais mais c est génial.Je commencais à désespérer.
merci
a plus


Message édité par le_moustiq le 07-07-2004 à 09:46:57
n°789124
rufo
Pas me confondre avec Lycos!
Posté le 07-07-2004 à 14:02:46  profilanswer
 

une remarque en passant : le XML n'est pas sencé contenir que des données et pas de mise en forme?

n°789256
le_moustiq
Posté le 07-07-2004 à 15:49:44  profilanswer
 

Qu'est ce que tu veu dire par là par rapport à ce que j'ai demandé?

n°790076
rufo
Pas me confondre avec Lycos!
Posté le 08-07-2004 à 11:30:01  profilanswer
 

bah dans l'ex de avander, y'a des balises <p>, <span>, etc... C'est de la mise en forme, pas des données.

n°790092
gilou
Modérateur
Modzilla
Posté le 08-07-2004 à 11:40:44  profilanswer
 

rufo a écrit :

bah dans l'ex de avander, y'a des balises <p>, <span>, etc... C'est de la mise en forme, pas des données.


Non, c'est assez standard.
<p> ca indique un paragraphe de texte, ca fait partie du decoupage logique.
<span> est un support d'attribut et permet de faire porter l'attribut sur un decoupage plus fin que le paragraphe,
Rien de tout ca n'indique de quelle maniere ca doit etre presenté.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  XSL:traiter les lignes XML dans l'ordre malgrès du text intercalé

 

Sujets relatifs
Fichier text par VB[XML/STX] ancestor stack
comment changer le format de xmlUNION ALL et ordre des résultats...
[XSL] activation de certains rangs de mon tableau par un type radioTransformation XSL
[Access - Excel] comment écrire plusieurs lignes dans une cellule? OK[Gtk+] tracer les lignes et les colonnes dans un clist
Plus de sujets relatifs à : XSL:traiter les lignes XML dans l'ordre malgrès du text intercalé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR