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 :

[ASP] Astuce pour type encodage


Sujet :

XML/XSL et SOAP

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 76
    Par défaut [ASP] Astuce pour type encodage
    Bonjour,

    Voila je vais essayer de vous expliquer mon problème:

    Dans une page ASP je prends en entrée un fichier XML que je retourne dans flux XML en sortie de ma page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	' chargement du fichier XML 
    	oXML.load(strNomFichierXml)
    	call gererErr("")
     
    	Response.ContentType="text/xml"
    	Response.Expires = "-1" 
    	Response.CharSet ="ISO8859-1"
    	Response.write 
    "<?xml version='1.0' encoding='ISO-8859-1' ?>" 
                 ' affichage du flux XML
    	Response.Write oXML.xml
    	Response.End
    Mon fichier XML ne possède pas d'entete et est du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <contexte>
    <nom>titi</nom>
    <prenom>titi</prenom>
    ...
    </contexte>
    En sortie j'ai donc bien mon XML affiché comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      <?xml version='1.0' encoding='ISO-8859-1' ?>
    - <contexte>
      <nom>toto</nom> 
      <prenom>toto</prenom> 
    ...
      </contexte>
    Mon problème intervient si je trouve un accent dans le fichier XML pris en entré. en effet, la fonction 'Response.Write oXML.xml' ne peut pas afficher le XML puisqu'a ce stade la l'encodage n'est pas spécifié dans la page XML en entrée, cette encodage n'est déclaré qu'après pour l'affichage du flux XML de sortie ....
    J'ai alors desuite pensé a rajouter l'encodage dans les fichiers XML d'entrée, en rajoutant en entete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "<?xml version='1.0' encoding='ISO-8859-1' ?>"
    Et la plus de problème d'accent, mais le fichier XML de sortie n'est plus formaté correctement, j'ai l'ecriture suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?xml version="1.0" encoding="ISO-8859-1" ?> 
      <?xml version="1.0" ?> 
    - <contexte>
    ...
      </contexte>
    Alors que je ne veux pas l'affichage de la 2eme balise de parametrage, le fichier n'etant plus formaté correctement mon traitement n'est plus valable.
    J'espere avoir été assez clair.
    Merci pour vos lumieres.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 76
    Par défaut
    Bonjour,

    Je reviens vers vous car j'ai une piste mais ca ne semble pas marcher.
    Avant de renvoyer le flux XML en fait un "Response.Write oXML.xml", j'utilise l'objet MXXMLWriter pour écrire les paramètres du XML à générer car apparament c'est comme ca qu'il faut faire.
    J'ai ecrit le code suivant:
    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
     
     
     
    oXMLW.output = oXML
    oXMLW.encoding="ISO-8859-1"
    oXMLW.startDocument
     
    ' Création de la racine<br>
    oXMLW.startElement "","","Root",Nothing
     
     
    	Response.Write oXML.xml
    oXMLW.endDocument
    Set oXMLW = Nothing
    	Response.End
    Je pense ne pas bien utiliser startDocument, endDocument. En sortie j'obtiens toujours <?xml version="1.0"?> alors qu'en utilisant oXMLW.encoding="ISO-8859-1" je pensais obtenir en en-tete <?xml version='1.0' encoding='ISO-8859-1'?>
    quelqu'un a une idée ?
    Merci

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 76
    Par défaut
    A titre d'info, voici la manip pour parer au problème. Il suffit en fait simplement de lire le fichier XML en entrée comme n'importe quel fichier texte et de l'afficher tel quel.

    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
     
    	'Création d'un objet du DOM XML
    	set oXML = server.CreateObject("Microsoft.XMLDOM")
    	call gererErr("")
     
    	'Paramétrage du flux de réponse
    	Response.ContentType="text/xml"
    	Response.Expires = "-1" 
    	Response.CharSet ="ISO-8859-1"
     
                 ' declaration des objets de lecture du fichier XML
    	Set fs=Server.CreateObject("Scripting.FileSystemObject")
    	Set f=fs.OpenTextFile(strNomFichierXml)
     
    	' on ecrit toutes les lignes du fichier lu
    	do while f.AtEndOfStream = false
    		Response.Write(f.ReadLine)
    	loop
    	f.Close
     
    	' fermeture des objets
    	Set f=Nothing
    	Set fs=Nothing
     
    	Response.End

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

Discussions similaires

  1. une astuce pour ouvrir la base de registre d'un autre disque
    Par bouassouille dans le forum Windows XP
    Réponses: 4
    Dernier message: 07/10/2005, 00h53
  2. Astuces pour mettre à jour un exe ?
    Par TreizeSegments dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/07/2005, 20h02
  3. ASP&BDD : Le type memo
    Par pekka77 dans le forum ASP
    Réponses: 3
    Dernier message: 29/06/2005, 11h34
  4. [VB.NET] Conseils pour types de fichiers
    Par Invité dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/02/2005, 11h06
  5. [ASP]pb pour un site bilingue
    Par DEC dans le forum ASP
    Réponses: 13
    Dernier message: 20/06/2004, 14h26

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