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

XSL/XSLT/XPATH XML Discussion :

[XSLT]Problème de transformation d'un document XML.


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut [XSLT]Problème de transformation d'un document XML.
    Bonjour,

    Je développe sous Visual C++ 6.0.
    Le parseur utilisé est MSXML 4.0
    Je souhaite transformer un document XML en un document HTML avec la fonction 'TransformNode' de l'API MSXML.
    J'observe le comportement suivant :
    Pour des documents XML "pas trop gros" (moins de 40 koctets), tout se passe bien.
    Mais dès lors que le document XML dépasse une taille critique, le contenu de la variable retournée par 'TransformNode' est vide, et la transformation n'a pas eu lieu.
    (--- BSTR bsString = pDocXML->TransformNode(pDocXSL); ---)

    Je ne comprends pas d'où vient le problème.
    Quelqu'un a-t-il une solution ou une idée ?

    Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    il faut changer de parser

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Certes...

    Mais l'exécution du code suivant suivant :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char buf[100000];
    strcpy(buf, pDocXML->TransformNode(pDocXSL));

    "buf" contient bien la transformation en document HTML !
    Le problème est que c'est un peu bidouille...

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par fraoustin
    il faut changer de parser
    MSXML est l'un des meilleurs du marché (malgré certains defauts ) notamment sur les (tres) gros fichiers et les transformations xslt "lourdes"
    Par contre transformeNode , meme si je travaille plutot web, ca fait longtemps que je ne l'utilise plus, pas assez modulable et performante .
    Regarde plutot du coté de cet article http://www.microsoft.com/france/msdn...processor.mspx

    Normalement c'est disponible sous tous les langages

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Oui, merci, c'est dans cette direction que je me suis aventuré, et cela fonctionne bien.

    Quand tu dis que MSXML présente certains défauts sur les très gros fichiers et les transformations XSLT lourdes : qu'entends-tu par un très gros fichier, de quelle taille ?

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par JM_Cholet
    Quand tu dis que MSXML présente certains défauts sur les très gros fichiers et les transformations XSLT lourdes : qu'entends-tu par un très gros fichier, de quelle taille ?
    On s'est mal compris J'ai ecris l'inverse :malgre quelque defaut (quelque liberté avec la norme sur l'ordre des noeuds recupérés par certaines instructions Xpath) il est tres performant notammentsur gros format et transformation lourde

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Ok !

    Mon problème est résolu

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

Discussions similaires

  1. [SAX] Transformation d'un document xml en html
    Par c moi dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 25/11/2008, 23h21
  2. [XSLT] problème de transformation
    Par kakikaki dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 27/03/2008, 09h22
  3. [XSLT] Extraire certaines balises d'un document XML
    Par Wookai dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 10/04/2007, 09h09
  4. [WordML][XSLT] Problème de transformation
    Par fouhaa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/05/2006, 15h22
  5. [JAVA] Problème supression noeud d'un document XML
    Par vero59 dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/08/2005, 16h12

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