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 :

Transformation xhtml -> xml (probleme xmlns)


Sujet :

XML/XSL et SOAP

  1. #1
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut Transformation xhtml -> xml (probleme xmlns)
    Salut tout le monde,
    probleme de transformation xhtml en xml via xslt à cause de la déclaration name-space "xmlns"
    Mes pages xhtml contiennent l'entête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="windows-1252"?>
    <html xmlns="http://www.w3.org/1999/xhtml">
    J'ai essayé de déclarer xmlns dans mon xslt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xhtml="http://www.w3.org/1999/xhtml"> 
    <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/>
    puis de rajouter dans les déclaration templates match le prefixe xhtml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="xhtml:html">
    .......
    <xsl:template match="xhtml:body> etc ...
    Mais rien à faire, tout ce que je recupère c'est du text brut sans mes elements, en remplacant xhtml par html pareil
    Sachant que si j'enleve la declaration xmlns dans le xhtml de depart cela fonctionne bien !
    Que faire ?!
    Merci pour votre aide

  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,

    c'est curieux.
    Quel est le processeur XSLT que tu utilises ?
    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
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    J'ai tout essayé
    Installation du processor msxml
    Changement de balise de declaration

    tout ce que j'ai reussi à avoir c'est la premiere balise si le reste que du text brute
    es une erreur de declaration xmlns ??!

    le xslt

    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
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:html="http://www.w3.org/1999/xhtml"> 
    <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/>
     
      <xsl:template match="html:html">
        <doc>
          <xsl:apply-templates/>
        </doc>
      </xsl:template>
     
    <!-- titre du produit--> 
      <xsl:template match="html:body/form[1]/table[@id='LISTE'][@border='0']">
           <produit>
             <xsl:attribute name="titre">         
               <xsl:value-of select="//b"/> 
             </xsl:attribute> 
        <xsl:apply-templates select="."/>
           </produit> 
      </xsl:template>
    ...


    Le ressultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <doc xmlns:html="http://www.w3.org/1999/xhtml">Ligaflex test d'immobilisation poignet-pouce...que du text......
                </doc>
    Que faire
    merci pour votre aide
    PS: j'utilise XMLSPY comme outil de prevusialisation

  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
    Un namespace par défaut déclaré au niveau d'un élément s'applique à tous les descendants de cette balise. Là, il est déclaré au niveau de la balise <html>, donc toutes les balises descendantes de cette balise appartiennent à ce namespace (mais pas les attributs). Il faut donc que dans tes expressions XPath tu emploies le préfixe correspondant. Par exemple :

    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
    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xhtml="http://www.w3.org/1999/xhtml"> 
     
    <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/> 
     
    <!-- titre du produit--> 
      <xsl:template match="xhtml:body/xhtml:form[1]/xhtml:table[@id='LISTE'][@border='0']"> 
           <produit> 
             <xsl:attribute name="titre">          
               <xsl:value-of select="//xhtml:b"/> 
             </xsl:attribute> 
        <xsl:apply-templates select="."/> 
           </produit> 
      </xsl:template>
    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
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    GrandFather,
    j'ai essayé ce que tu m'as proposé ce qui été très logique, sauf que xmlspy me renvoie une erreur du genre :
    "This file si not valid:
    XSLT stack overflow"

    merci pour ton aide

  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
    Tu dois avoir un template qui s'appelle lui-même, ou un truc dans le genre. Si tu as une version "pro" ou "enterprise" de XMLSpy, utilise le débogeur pour trouver l'origine du problème.
    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

  7. #7
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    Bien vu GrandFather trop fort
    c'était bien ça
    la balise qui causée problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="."/>
    merci beaucoup pour ton aide

    maintenant ça marche
    Il faut donc que dans toutes les expressions XPath j'emploies le préfixe correspondant

    merci encore

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

Discussions similaires

  1. [DOM-XML-Javascript] Transformer du code xml en code xhtml
    Par Rtitoun dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/04/2008, 20h27
  2. [XHTML] transformation xhtml en xml
    Par emma des bois dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 16/06/2006, 10h59
  3. probleme de transformation d'un XML via XSLT
    Par nayron_1 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 08/11/2005, 14h19
  4. transformation xhtml->xml (choose|if test)?
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/06/2005, 10h46
  5. [XSLT] transformation XHTML->XML
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 23/05/2005, 13h15

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