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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML / XLS] C++ : Soucis de feuille XSL !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML / XLS] C++ : Soucis de feuille XSL !

n°729890
wishy
Posté le 18-05-2004 à 10:10:13  profilanswer
 

Bonjour,
 
Je cherche à appliquer une feuille de style XSL à un arbre XML, mais cette action provoque une erreur.
L'affichage de l'abre XML sous IE 5.1 marche sans soucis tant que je n'applique pas la feuille XSL.
 
Une fois que je l'applique, l'erreur suivante se produit :
 

Code :
  1. The XML page cannot be displayed
  2. Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
  3. --------------------------------------------------------------------------------
  4. XML document must have a top level element. Error processing resource


 
Voici le code :
 

Code :
  1. ...
  2. //Creation de l'arbre XML (enregistrement du Recordset)
  3. MSXML::IXMLDOMDocumentPtr pXMLDOMDoc;
  4. pXMLDOMDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
  5. pAdoRecordset->Save(pXMLDOMDoc.GetInterfacePtr(), ADODB::adPersistXML);
  6. //Création de ma feuille de style xls
  7. CString pXSLClause;
  8. pXSLClause = " <?xml version=\"1.0\"?>";
  9. pXSLClause = " <xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http:\//www.w3.org/TR/WD-xsl\">";
  10. pXSLClause = "  <xsl:template match=\"/\">";
  11. pXSLClause = "  </xsl:template>";
  12. pXSLClause = " </xsl:stylesheet> ";
  13. //On applique la feuille XLS
  14. pXMLDOMDoc->loadXML((_bstr_t)pXSLClause);
  15. //Sauvegarde sous un fichier de debug de l'arbre en mémoire
  16. pXMLDOMDoc->save("Debug-XML-OutPut.xml" );
  17. ...


 
Mon fichier en sortie fait 600Ko sans la feuille de style, puis 0ko quand je l'applique. Pourtant ma feuille XSL est la plus simple du monde ...
 
Pourriez vous m'aider ? :)
 
Merci !

mood
Publicité
Posté le 18-05-2004 à 10:10:13  profilanswer
 

n°729955
wishy
Posté le 18-05-2004 à 10:47:20  profilanswer
 

help :(
 
+1

n°730071
fd91
Posté le 18-05-2004 à 12:24:36  profilanswer
 


hum, comment te dire ça avec des mots simples...
C'est vraiment ce code là que tu utilises ?
Alors on mettra ça sur le compte d'une erreur d'étourderie...
 
L'operateur = remplace le contenu de ta CString,
il faut utiliser += si tu veux ajouter...
 
la CString contient le résultat de la dernière affectation...
pXSLClause = " </xsl:stylesheet> ";  

n°730120
wishy
Posté le 18-05-2004 à 12:51:32  profilanswer
 

Merci !
 
J'ai effectivement corrigé ca ce matin !
Oui l'etourderie :)
 
Par contre je t'avouerais avoir de nouveaux soucis sur ce format XSL, d'autant plus que pour trouver l'erreur lorsqu'il y en a une, est assez ardue, car à l'inverse d'un compilateur, quand une ligne a une mauvaise syntaxe, le .xml contient 0 octet, et pour trouver l'erreur, bonjour bonjour ...
 
Auriez vous une technique ?
 
Je refile plancher sur la msdn !
 
Merci à toi !

n°730210
wishy
Posté le 18-05-2004 à 13:20:44  profilanswer
 

Voila mon arbre XML :
 

Code :
  1. -<z:row ID_FR="30" ID_FR_ER="557" NOM_FR="ABS">
  2.        <cmp ID_CMP="557" NATURE_ABS="O" EXTENSE="N"/>
  3.        <cmp ID_CMP="558" NATURE_ABS="O" EXTENSE="N"/>
  4. </z:row>


 
Je souhaiterais que cela me donne :

Code :
  1. -<NOUVEAU ID_FR="30">
  2.        <cmp ID_CMP="toto:557"/>
  3.        <cmp ID_CMP="toto:558"/>
  4. </NOUVEAU>


 
Et voici mon XSL qui ne marche pas
 

Code :
  1. <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'
  2. xmlns:rs='urn:schemas-microsoft-com:rowset'
  3. xmlns:z='#RowsetSchema'
  4. exclude-result-prefixes='rs z'>
  5. <xsl:output method='xml' encoding='UTF-8' omit-xml-declaration='yes'/>
  6. <xsl:template match='/'>
  7.  <xsl:for-each select='z:row'>
  8.   <NOUVEAU ID_FR="{@ID_DATA}">
  9.    <xsl:for-each select='cmp'>
  10.     <cmp ID_CMP="toto:{@CMP_DATA}"/>
  11.    </xsl:for-each>
  12.   </NOUVEAU>
  13.  </xsl:for-each>
  14. </xsl:template>
  15. </xsl:stylesheet>


 
J'avoue débuter ! (Cela doit se voir dans les potentielles erreurs de grammaire du langage)
 
Ca ne marche pas :(
Il me sort la meme erreur qu'auparavant! :(


Message édité par wishy le 18-05-2004 à 13:35:29

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

  [XML / XLS] C++ : Soucis de feuille XSL !

 

Sujets relatifs
le XML, methode merise c dure à assimiler ?[XML / C++] Création via ActiveX : Exemple ?
XML dans un XMLSoucis avec un template...
convertisseur HTML --> XML[XML] XML encryption : cryptage d'arbres XML
Créer une feuille ExcelValider un fichier xml avec une dtd
2 questions sur access (aide et feuille de données)petit soucis de mailform...qui peut m'aider?
Plus de sujets relatifs à : [XML / XLS] C++ : Soucis de feuille XSL !


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