IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

faire passer des balise html d'un XML vers un XLS


Sujet :

XML/XSL et SOAP

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut faire passer des balise html d'un XML vers un XLS
    Salut,
    Ma question se résume au sujet.
    J'ai une page xml dans laquelle des données sont stockées avec des balise du style <td>, <tr>.
    J'ai ensuite un autre fichier xsl qui traduit mon fichier xml avec ayant l'attribut output=html
    Lors de l'affichage, les balises de mon fichier xml ne sont pas prises en compte.
    Quelqu'un sait comment je pourrais remédier à cela ?

    Merci

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    je crois que sans un petit échantillon du XML de départ, de ce que tu obtiens à l'arrivée et du code pour ce faire, il va être difficile de t'aider...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Ok, alors voici, un bout des codes :


    Fichier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="style_file.xsl"?>
    <ClinicalDocument>
    <component>
    <structuredBody>
    <component>
    <section>
      <title>Antécédent et allergies</title>
      <text>
        <tr>
          <td>Décision médicale : </td>
          <td>(05) Transféré // 7///r</td>
        </tr>
        <tr>
          <td>26/04/2006 10:01 // 7///r</td>
        </tr>
      </text>
    </section>
    </component>
    </structuredBody>
    </component>
    </ClinicalDocument>
    
    Fichier XSL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <xsl:stylesheet
    ="1.0"
    :xsl="http://www.w3.org/1999/XSL/Transform"
    :n3="http://www.w3.org/1999/xhtml"
    :n1="urn:hl7-org:v3"
    :n2="urn:hl7-org:v3/meta/voc"
    :voc="urn:hl7-org:v3/voc"
    :xsi="http://www.w3.org/2001/XMLSchema-instance">
    
    <xsl:output method="html" indent="yes" version="4.01" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN"/>
    <xsl:template match="/">
    <table width="100%">
    <tr>
    <td align="center">
    <xsl:apply-templates select="ClinicalDocument/component/structuredBody"/>
    </td>
    </tr>
    </table>
    </xsl:template>
    <!-- StructuredBody -->
    <xsl:template match="ClinicalDocument/component/structuredBody">
    <!--<xsl:value-of select="ClinicalDocument/component/structuredBody/component/section/title"/>-->
    <xsl:apply-templates select="component/section"/
    </xsl:template>
    <!-- Component/Section --> 
    <xsl:template match="component/section">
    <xsl:apply-templates select="title"/>
    <table>
    <tr>
    <td><xsl:apply-templates select="text"/></td>
    </tr>
    </table>
    
    
    </xsl:template>
    <!-- Title -->
    <xsl:template match="title">
    <h3><span style="font-weight:bold;"> 
    <xsl:value-of select="."/>
    </span></h3>
    </xsl:template>
    <!-- Text -->
    <xsl:template match="text">
    
    <xsl:value-of select="."/> 
    </xsl:template>
    
    
    </xsl:stylesheet>
    
    J'obtiens ceci :
    Antécédent et allergies

    Décision médicale : (05) Transféré // 7///r26/04/2006 10:01 // 7///r

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Remplace ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="text">
      <xsl:value-of select="."/> 
    </xsl:template>
    par celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:template match="text">
      <xsl:copy-of select="*"/> 
    </xsl:template>
    <xsl:value-of> ne fait qu'envoyer en sortie la concaténation de tous les noeuds textuels descendants du noeud sélectionné. Il faut utiliser copy-of pour recopier les éléments et la structure qui vont avec.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    merci, ca marche
    et en passant, existe t-il une fonction xsl équivalente au replace de vb,php, ... etc. ?

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    le replace n'existe pas, en tout cas pas sous cette forme, il faut souvent utiliser une combinaison des fonctions substring(), substring-before(), substring-after() et translate().
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Problème avec XSLT et du XML contenant des balises HTML
    Par xamber dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/11/2011, 11h45
  2. [XML] [Débutant]Comment ajouter des balise html dans un fichier XML
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/09/2010, 14h36
  3. XML interprétation des balises HTML
    Par poypoy31240 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 31/05/2010, 14h21
  4. Insérer des balises html dans un fichier xml
    Par Abac_Angelique dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 29/04/2009, 17h41
  5. [XSLT] inclure des balises html dans xml
    Par paty03 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 25/02/2008, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo