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

ASP.NET Discussion :

Fabrication d'un fichier XML


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Fabrication d'un fichier XML
    Salut

    Je susi confronté à un souci que je n'ai pas l'habitude de gérer : la fabrication d'un fichier XML. En fait, ce qui pose problème c'est surtout son encodage et là, c'est la mouise.

    Je vous donne mon code et j'explique aprés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Shared Sub ecrire(ByVal message As String, ByVal fichier As String, ByVal codage As System.Text.Encoding)
    		Dim oWriter As New StreamWriter(fichier, True, codage)
    		oWriter.WriteLine(message)
    		oWriter.Close()
    End Sub
     
    'Exemple d'appel
    ecrire("<?xml version='1.0' encoding='ISO-8859-1' ?>", ficXML, System.Text.Encoding.Unicode)
    ecrire("<listepa>", ficXML, System.Text.Encoding.Unicode)
    Donc, comme vous l'aurez vu, j'écrit directement dans un fichier les balises XML en faisnat une lecture dans ma base de données.
    Mon souci vient de la pemière ligne, je pense. La première ligne du fichier XML reçoit l'encodage 'ISO-8859-1' ce qui, sauf si je me trompe, correspond à de l'unicode. Je lorsque j'ouvre le fichier je le fais en l'encodant pareil. Sauf que lorsque j'ouvre le fichier XML sur IE 7.0 il me dit que :
    Le passage du codage actuel au codage spécifié n'est pas pris en charge. Erreur de traitement de la ressource
    Alors voilà, moi tout perdu, pas comprendre.

    A l'aide ! ! ! !

    Merci pour votre aide.

    PS : j'utilise la même fonction pour une autre fabrication de fichier sauf que là je passe en UTF-8 et tout marche bien. Donc j'en dédiu que ça vient pas de mon code, mais plutot des paramètres du code.

  2. #2
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Bonjour,

    Tout d'abord 'ISO-8859-1' correspond à la norme Latin-1 en ASCII, donc ce n'est pas de l'UNICODE. L'interpreteur XML de IE7 n'interprete, il me semble, que de l'UNIDCODE ('utf-8','utf-16'...) .

    Au delà de ça, j'ajouterai qu'il existe pour l'objet 'Dataset', un méthode 'WriteToXml', si ça peut t'éviter de tout te faire à la mimine

    Bon courage

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ah merci pour cet éclaircissement sur l'encodage (un sujet trés obscur pour moi).

    Pour le coup de tout faire à la mimine, je préfère. L'extraction est assez particulière et j'ai abandonné l'utilisation de tout le potentiel XML de .NET. Je l'utiliserais certainement dans un autre cas, mais là, la bonne vieille méthode reste la meilleur.

    Revenons à l'encoding : donc si on me demande de mettre 'ISO-8859-1' en début de fichier c'est qu'on veut un fichier à la norme Latin-1 en ASCII.
    Alors ne devrais je pas mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Text.Encoding.ASCII
    Dans mon paramettre de codage ?
    Ou alors je peux insulter celui qui me demande de faire de "l'unicode" et me donne ce genre de codage ?

    Merci pour ton aide.

  4. #4
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Tu t'embrouilles avec l'encodage .
    ASCII <> UNICODE .
    Aprés, le fait que ça ne fonctionne pas sous IE 7 peut venir du fait que IE7 attend de l'UNICODE. Ce qui faut se dire c'est que .Net et plus généralement les technologies MS écrivent de l'UNICODE ('utf-8' en principe).

    1 Char UNICODE est codé sur 2 octets.

    1 Char ASCII est codé sur 1 octet.

    ton problème vient de ta confusion entre les deux types, donc effectivement tu dois changer l'ncodage comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Shared Sub ecrire(ByVal message As String, ByVal fichier As String, ByVal codage As System.Text.Encoding)
    		Dim oWriter As New StreamWriter(fichier, True, codage)
    		oWriter.WriteLine(message)
    		oWriter.Close()
    End Sub
     
    'Exemple d'appel
    ecrire("<?xml version='1.0' encoding='ISO-8859-1' ?>", ficXML, System.Text.Encoding.Unicode)
    ecrire("<listepa>", ficXML, System.Text.Encoding.ASCII)
    et ça devrait tourné

    A bientôt

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    OK, merci, je crois que je comprends mieux maintenant. Faudra voir si j'arrive à la replacer dans un autre contexte.

    En fait j'ai un autre exemple (maintenant que j'ai cet explciation, je comprends un bug que j'ai eu avec un site en ASP 3.0 et des caractères pourris dans la page) je vais essayer de mettre à profit cette explcaition avec cet autre exemple.

    Sinon, ça à l'air de mieux marcher pour mon fichier XML, reste au destinataire de me confirmer tout ça.

    Merci pour ton aide mafyoso.

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Citation Envoyé par mafyoso Voir le message
    Au delà de ça, j'ajouterai qu'il existe pour l'objet 'Dataset', un méthode 'WriteToXml', si ça peut t'éviter de tout te faire à la mimine
    Bon, j'ai quand même essayé ça, histoire de voir. A priori ça pourrais solutionner mes soucis de codage.

    Mais j'ai un petit détail qui me gêne :
    le XML générer se place là dedans
    <NewDataSet>
    <Table>
    blblblblblblblb
    </Table>
    </NewDataSet>
    J'ai fait un truc comme ça pour changer le <NewDataSet>.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ds.DataSetName = "listepa"
    Mais je trouve pas le moyen de changer le <Table>. Du reste, jai même du mal pour construire ma requête avec des balises XML imbriquées, faudrait que je fasse des jointures dans mon DataSet ?

    Merci pour ton aide.

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

Discussions similaires

  1. Recuperation du fichier xml
    Par Geulderack dans le forum XMLRAD
    Réponses: 10
    Dernier message: 28/02/2003, 11h06
  2. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16
  3. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  4. [Kylix] Composant IBM pour fichiers XML
    Par Mister Nono dans le forum EDI
    Réponses: 1
    Dernier message: 29/09/2002, 20h28
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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