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

JavaScript Discussion :

[mozilla] Transformation XSLT avec javascript...


Sujet :

JavaScript

  1. #1
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut [mozilla] Transformation XSLT avec javascript...
    Salut,
    J'essais de faire une transformation XSLT d'un fichier XML côté client à l'aide de javascript... Pour ce faire, je charge mes deux fichiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.xmlDoc = document.implementation.createDocument('', 'doc', null);
    this.xmlDoc.load(url);
    Puis et voici le code censé faire la transformation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var fragment;
    var xsltProcessor = new XSLTProcessor();
     
    xsltProcessor.importStylesheet(xsl);
    fragment = xsltProcessor.transformToFragment(xml, document);
    var tmp = document.getElementById(id);
    tmp.innerHTML = fragment;
    Mais malheureusement, j'ai cette erreur
    [Exception... "Component returned failure code: 0x80600001 [nsIXSLTProcessor.importStylesheet]"
    à la ligne xsltProcessor.importStylesheet(xsl);...

    Pouvez-vous me dire quel est le problème

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    a quoi correspond ta variable xsl ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    xsl de même que xml corespondent à deux objets xmlDoc retourné par la fonction de chargement...

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    il me semble qu'il faut que ce soit du texte
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    Voici quelques précisions...
    J'ai toujours mes deux classes xmlParser chargement et parcours de fichier xml mais dans le cas présent je n'utilise que la fonction de chargement...
    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
    function loadXML(url)
    {
      /* chargement du fichier XML */
      try {
        // navigateur basé sur Gecko
        if (document.implementation && document.implementation.createDocument)
        {
          this.xmlDoc = document.implementation.createDocument('', 'doc', null);
          this.xmlDoc.load(url);
        // ActiveX pour Internet Explorer
        } else if (window.ActiveXObject) {
          try {
            this.xmlDoc = new ActiveXObject('Msxml2.XMLDOM');
          } catch (e) {
            this.xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
          }
          this.xmlDoc.async = false;
          this.xmlDoc.load(url);
        // à l'aide de lobjet XMLHTTPRequest
        } else if (window.XMLHttpRequest) {
          this.xmlDoc = new XMLHttpRequest();
          this.xmlDoc.overrideMimeType('text/xml'); 
          this.xmlDoc.open('GET', url, false);
          this.xmlDoc.send(null);
          if (this.xmlDoc.readyState == 4)
            this.xmlDoc = this.xmlDoc.responseXML.documentElement;
        }
      } catch (e) {
        alert(e);
        return false;
      }
      return true;
    }
    Et ensuite la classe xmlManager qui traite les fichiers xml dans le cas présent, je n'utilise que la fonction transform(xml, xsl, id)...
    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
    function transform(xml, xsl, id)
    {
      xml = xml.xmlDoc;
      xsl = xsl.xmlDoc;
     
      try {
        // Gecko
        if (window.XSLTProcessor)
        {
          var fragment;
          var xsltProcessor = new XSLTProcessor();
     
          xsltProcessor.importStylesheet(xsl);
          fragment = xsltProcessor.transformToFragment(xml, document);
          var tmp = document.getElementById(id);
          tmp.innerHTML = fragment;
        } else if (window.ActiveXObject) {
          var target = document.getElementById(id);
          target.innerHTML = xml.transformNode(xsl);
        }
      } catch (e) {
          return e;
      }
    }
    j'appelle ces fonctions après avoir contruit les objet respectifs avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xml.loadXML('./news.xml');
    xsl.loadXML('./news.xml');
    news.transform(xml, xsl, 'news');
    Citation Envoyé par siddh
    il me semble qu'il faut que ce soit du texte
    Du texte??? Euh je ne me rapelle plus vraiment sa position dans l'objet mais il me semble que c'est xmlDoc.documentElement.textTruc... Je vais essayer...

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    hum non c est pas du texte, j'ai trouvé ça sur le net, essayes de l'adapter avec tes parsers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var xsltProcessor = new XSLTProcessor();
     
      // Load the xsl file using synchronous (third param is set to false) XMLHttpRequest
      var myXMLHTTPRequest = new XMLHttpRequest();
      myXMLHTTPRequest.open("GET", "example.xsl", false);
      myXMLHTTPRequest.send(null);
     
      var xslRef = myXMLHTTPRequest.responseXML;
     
      // Finally import the .xsl
      xsltProcessor.importStylesheet(xslRef);
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    J'avais essayé comme ça mais toujours la même erreur...
    J'ai trouvé un bout de code pour transformer un objet xml en string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var string = (new XMLSerializer()).serializeToString(xsl);
    Et la l'erreur de départ à changé...
    [Exception... "Could not convert JavaScript argument arg 0 [nsIXSLTProcessor.importStylesheet]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    non mais faut pas de texte, ton xsl est correct ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  9. #9
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    Il me semble que oui...
    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
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:strip-space elements="*" />
      <xsl:preserve-space elements="pre" />
      <xsl:preserve-space elements="code" />
     
      <xsl:template match="article">
        <xsl:for-each select="post">
          <h2>
            <span>
              <xsl:value-of select="./categorie" />
            </span>
            <xsl:value-of select="./title" />
          </h2>
          <h6>
            <xsl:value-of select="./@author" />
          </h6>
          <div id="{./@id}">
            <xsl:apply-templates select="./content" />
          </div>
        </xsl:for-each>
      </xsl:template>
     
      <xsl:template match="content">
        <xsl:apply-templates select="text()|node()" />
      </xsl:template>
     
      <xsl:template match="text()">
        <xsl:value-of select="." />
      </xsl:template>
     
      <xsl:template match="node()">
        <xsl:copy-of select="." />
       </xsl:template> 
    </xsl:stylesheet>

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    tu l as testé dans un truc genre xmlwriter ou xmlspy ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  11. #11
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    Oh la la que j'ai honte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xml.loadXML('./news.xml');
    xsl.loadXML('./news.xml');
    news.transform(xml, xsl, 'news');
    Si on regarde bien, on voit qu'en fait je charge deux fois le fichier news.xml ou lieu de mettre news.xsl... Tout cela pour une simple lettre...

    L'erreur est humaine

  12. #12
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    mwé ben je vaut pas mieux que toi einh
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'utilise un topic déjà existant puisqu'au départ il s'agit du même sujet. S'il faut séparer, c'est pas un problème.

    Je cherche donc à transformer un XML en HTML à l'aide d'un XSL sous Firefox.
    Le code de l'application sur laquelle je travaille n'existait que sous IE et fonctionne bien pour IE (ActiveXObject et transformNode).

    J'ai cherché des infos sur divers forums et notamment sur ce topic pour réaliser la transformation pour Firefox. Toutes les infos mènent sensiblement au même code.

    Pour ma transformation Firefox, j'utilise xsltProcessor.transformToFragment (voire transformToDocument). Le problème c'est qu'au lieu de récupérer du HTML, je récupère un objet DocumentFragment avec transformToFragment et un objet XMLDocument avec transformToDocument.
    Je n'ai trouvé aucun moyen d'avoir le HTML.

    Voici la portion de code concernée (simplifiée, notamment sur la récupération des fichiers, mais donne le même réusltat) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var xsltProcessor = new XSLTProcessor();
    var xml = document.implementation.createDocument("","",null); 
    var xsl = document.implementation.createDocument("","",null);
    xml.load('http://localhost/yv.xml');
    xsl.load('http://localhost/yv.xsl');
    xsltProcessor.importStylesheet(xsl);			
    strRet = xsltProcessor.transformToDocument(xml);
    //strRet = xsltProcessor.transformToFragment(xml,document);
    Ainsi que les fichiers XML et XSL en pièces jointes et ici :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    <?xml version="1.0" encoding="windows-1250"?>
    <viewentries timestamp="20100331T150520,70Z" toplevelentries="23">
    −
    <viewentry position="1" noteid="800000BC" children="1" descendants="1" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text> </text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="2" noteid="800000C0" children="4" descendants="4" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>A</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="3" noteid="800000C4" children="6" descendants="6" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>B</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="4" noteid="800000C8" children="7" descendants="7" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>C</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="5" noteid="800000CC" children="6" descendants="6" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>D</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="6" noteid="800000D0" children="3" descendants="3" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>E</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="7" noteid="800000D4" children="3" descendants="3" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>F</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="8" noteid="800000D8" children="4" descendants="4" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>G</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="9" noteid="800000DC" children="6" descendants="6" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>H</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="10" noteid="800000E0" children="2" descendants="2" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>I</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="11" noteid="800000E4" children="5" descendants="5" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>J</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="12" noteid="800000E8" children="2" descendants="2" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>L</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="13" noteid="800000EC" children="13" descendants="13" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>M</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="14" noteid="800000F0" children="2" descendants="2" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>N</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="15" noteid="800000F4" children="2" descendants="2" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>O</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="16" noteid="800000F8" children="8" descendants="8" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>P</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="17" noteid="800000FC" children="4" descendants="4" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>R</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="18" noteid="80000100" children="5" descendants="5" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>S</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="19" noteid="80000104" children="6" descendants="6" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>T</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="20" noteid="80000108" children="2" descendants="2" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>W</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="21" noteid="8000010C" children="1" descendants="1" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>Y</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="22" noteid="80000110" children="1" descendants="1" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text>(</text>
    </entrydata>
    </viewentry>
    −
    <viewentry position="23" noteid="80000114" children="2" descendants="2" siblings="23">
    −
    <entrydata columnnumber="0" name="$42" category="true">
    <text/>
    </entrydata>
    </viewentry>
    </viewentries>
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <?xml version="1.0" encoding="UTF-8"?>
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="1.0"
        xmlns:xalan="http://xml.apache.org/xslt">
     
     
     
    <xsl:template match="viewentry[@children]">
    	<div>
    	<xsl:attribute name="ID">
    		<xsl:value-of select="@position" />
    	</xsl:attribute>
    		<span style="font-weight:bold;color:#666666;cursor:hand" onclick="toggleSection(this)">+ </span>
    		<span class="view-row-cat" style="cursor:hand"  onclick="toggleSection(this.previousSibling)">
    			<xsl:attribute name="NextEntrySrc"><Valeur calculée>?ReadViewEntries&amp;Start=<xsl:value-of select="@position" />.1&amp;Count=<xsl:value-of select="@children" />&amp;Collapse=<xsl:value-of select="@position" />.1</xsl:attribute>
     
    			<xsl:value-of select="entrydata" />
    		</span>
    		<div style="margin-left:15px;display:none"></div>
    	</div>
    </xsl:template>
     
    <xsl:template match="viewentry">
    	<table border="0" width="95%">
    		<tr class="view-row-1">
    		<xsl:if test="position() mod 2 != 0">
    			<xsl:attribute name="class">view-row-2</xsl:attribute>
    		</xsl:if>
     
    		<td width="1%" valign="bottom"><a target="_top" style="text-decoration:none">
    			<xsl:attribute name="href"><Valeur calculée><xsl:value-of select="@unid"/>?opendocument</xsl:attribute>
    			<img border="0" alt="Consulter le document" src="/icons/Doclink.gif" /></a></td>
     
    				<xsl:apply-templates select="entrydata" />
    			</tr>
    		</table>
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=1]">
    <td width="20%" class="view-row-doc">
    	<xsl:value-of select="text" />
    </td>
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=2]">
    <td width="15%" class="view-row-doc">
    	<xsl:value-of select="text" />
    </td>
    </xsl:template>
    <xsl:template match="entrydata[@columnnumber=3]">
    <td width="15%" class="view-row-doc">
    	<xsl:value-of select="text" />
    </td>
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=4]">
    <td width="20%" class="view-row-doc">
    	<xsl:value-of select="text" />
    </td>
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=5]">
    <xsl:param name='ico' select="number"/>
     
    <td width="2%">
    <xsl:if test="$ico = 38">
    	<xsl:element name="img">
    	<xsl:attribute name="src">/icons/vwicn038.gif</xsl:attribute>
    	<xsl:attribute name="alt">Mis a la corbeille</xsl:attribute>
    	</xsl:element>
    </xsl:if>
    </td>
     
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=6]">
    <xsl:param name='ico' select="number"/>
     
    <td width="2%">
    <xsl:if test="$ico = 5">
    	<xsl:element name="img">
    	<xsl:attribute name="src">/icons/vwicn005.gif</xsl:attribute>
    	<xsl:attribute name="alt">Attachements</xsl:attribute>
    	</xsl:element>
    </xsl:if>
    </td>
     
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=7]">
    <td width="15%" class="view-row-doc">
    	<xsl:value-of select="text" />
    </td>
    </xsl:template>
     
    <xsl:template match="entrydata[@columnnumber=8]">
    <td width="20%" class="view-row-doc">
    	<xsl:value-of select="text" />
    </td>
    </xsl:template>
     
    </xsl:stylesheet>
    Note : l'application est écrite sous Lotus Notes mais le soucis semble ne pas y être lié

    J'ai essayé de rajouter <xsl:output method="html"/> au fichier XSL sans succès (si ce n'est d'avoir créé le bug pour IE).

    Comment réussir à récupérer le HTML correspondant à ces fichiers ?

    N'hésitez pas à me demander d'autres informations si nécessaire.

    Merci pour votre aide.
    Yannick
    Fichiers attachés Fichiers attachés
    • Type de fichier : xml yv.xml (4,6 Ko, 108 affichages)
    • Type de fichier : xsl yv.xsl (3,0 Ko, 100 affichages)

  14. #14
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Pareil, j'ai le même message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Exception... "Component returned failure code: 0x80600001 [nsIXSLTProcessor.importStylesheet]" nsresult: "0x80600001 ()" location: "JS frame :: http://localhost/.../tools.js :: getXmlFormate :: line 336" data: no]
    Voici ma fonction (qui fonctionne très bien avec IE:
    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
    function getXmlFormate(chemFicXml, chemFicXsl) { // Lie un XSL à un XML et retourne le résultat transformé
        var strRet = "ERREUR";
        try {
            if (window.ActiveXObject) { // pour IE
                var sLatestMSXML = getLatestMSXML();
                ficXml = new ActiveXObject(sLatestMSXML);
                ficXsl = new ActiveXObject(sLatestMSXML);
                ficXml.async = false;
                if (!ficXml.load(chemFicXml)) {
                    return "ERREUR: Fichier \"" + chemFicXml + "\" non trouvé.";
                }
                ficXsl.async = false;
                if (!ficXsl.load(chemFicXsl)) {
                    return "ERREUR: Fichier \"" + chemFicXsl + "\" non trouvé.";
                }
                strRet = ficXml.transformNode(ficXsl);
            } else if (document.implementation && document.implementation.createDocument) { // pour FF
                var xslt = document.implementation.createDocument("", "", null);
                xslt.async = false;
                if (!xslt.load(chemFicXsl)) {
                    return "ERREUR: Fichier \"" + chemFicXsl + "\" non trouvé.";
                }
                var processor = new XSLTProcessor();
                processor.importStylesheet(xslt);
                var xmlDoc = document.implementation.createDocument("", "", null);
                xmlDoc.async = false;
                if (!xmlDoc.load(chemFicXml)) {
                    return "ERREUR: Fichier \"" + chemFicXml + "\" non trouvé.";
                }
                var resultat = processor.transformToFragment(xmlDoc, document); // */
                strRet = resultat;
            }
        } catch (err) {
            strRet = "ERREUR: " + err + " (" + chemFicXsl+ ")";
        }
        return strRet;
    }
    La ligne 336 est : processor.importStylesheet(xslt);

    Quelqu'un a une idée ?

    Merci d'avance.
    David.

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par dacid Voir le message
    Quelqu'un a une idée ?
    Le code JavaScript a l'air correct, mais 'faudrait qu'on voie le fichier XSLT...
    C'est pas parce que IE l'accepte qu'il est correct, hein.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2012, 16h20
  2. Réponses: 0
    Dernier message: 10/01/2012, 16h19
  3. Réponses: 0
    Dernier message: 10/01/2012, 16h18
  4. [XSLT] Problème de transformation XSLT avec JAVA
    Par ploxien dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 28/09/2007, 16h47

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