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

VB.NET Discussion :

Création XML avec XmlWriter


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Création XML avec XmlWriter


    J'ai un petit problème dans la génération de la balise principale de mon fichier. Cela doit être dans cet ordre:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    <FctAssain xsi:schemaLocation="http://xml.sandre.eaufrance.fr/scenario/fct_assain/3 
    http://xml.sandre.eaufrance.fr/scenario/fct_assain/3/sandre_sc_fct_assain.xsd" 
    xmlns="http://xml.sandre.eaufrance.fr/scenario/fct_assain/3" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    mais tout ce que j'arrive à faire c'est:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="utf-8"?>
    <FctAssain xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xml.sandre.eaufrance.fr/scenario/fct_assain/3 http://xml.sandre.eaufrance.fr/scenario/fct_assain/3/sandre_sc_fct_assain.xsd" 
    xmlns="http://xml.sandre.eaufrance.fr/scenario/fct_assain/3">

    l'ordre indiqué en premier doit être rigoureusement respecté car sinon le programme, non développé par la boîte, ne peut pas le lire le fichier XML

    Je fait comme ceci:
    Code vbnet : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            '* Ajout de l'en-tête XML standard
            _writer.WriteStartDocument()
     
            '* Ajout de l'élément parent et les chemins de schémas
            _writer.WriteStartElement("FctAssain", "http://xml.sandre.eaufrance.fr/scenario/fct_assain/3")
            _writer.WriteAttributeString("xmlns", "xsi", Nothing, "http://www.w3.org/2001/XMLSchema-instance")
            _writer.WriteAttributeString("xsi", "schemaLocation", Nothing, "http://xml.sandre.eaufrance.fr/scenario/fct_assain/3 http://xml.sandre.eaufrance.fr/scenario/fct_assain/3/sandre_sc_fct_assain.xsd")

    Je ne vois pas trop comment mettre les différents chemins dans le bon ordre


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    Ca ne m'étonne pas car l'ordre des attributs n'est pas significatif officiellement.

    Cela étant, que crois que dans VB, on a une fonction XML qui s'appelle WriteEndAttribute, y'a peut être quelque chose à chercher la dedans.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut


    Je ne crois pas en fait, c'est une fonction sans paramètres et qui en plus me génère une exception:
    Le jeton EndAttribute dans l'état Element Start Tag générera un document XML non valide.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Re,

    J'ai un peu cherché et je vois pas de solution VB.

    A part écrire le fichier XML comme un fichier texte...
    Et/Ou utiliser un fichier XML comme Template qui posséderaient déjà l'entête formatée...

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Ca, ça risque d'être un peu plus compliqué car il faudrait que je génère en premier lieu le fichier puis que je change l'en-tête en copiant les données vers un fichier avec l'en-tête dans le bon ordre, si je compte environ 1 minute pour générer un fichier (ils sont gros, environ 15.000 à 20.000 lignes, le plus long ce sont les requêtes de récupération et test de données) sur environ 93 ouvrages (une fois par mois)... je pense que ce n'est pas une pratique intéressante

    Est-ce qu'on peut, avec XmlWriter, écrire dans un fichier qui contient déjà des données ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Re,

    Je ne crois pas... je crois qu'on ne peut écrire et en plus de manière itératif.
    C'est un moyen facile d'écrire un fichier xml, mais ce n'est pas un outil très complet pour manipuler les fichier xml.

    Il reste deux (ou plus?) moyens pour éditer un fichier xml :

    - Xpath, qui va permettre de naviguer entre les noeuds, en ajouter etc... Mais de mon avis, c'est un petit peu laborieux.

    - La sérialization. En créant une classe serializable qui correspond a la structure de votre fichier, vous pourriez ouvrir un fichier facilement (une ligne), lire les données dans le code à travers la classe, et enregistrer le fichier (en une ligne aussi). On peut d'ailleurs définir les nœuds ET les attributs.

    Cependant il faudrait vérifier, pour résoudre votre problème, si la sérialisation conserve l'ordre des attributs de la classe...
    Il faudrait faire un petit test.

Discussions similaires

  1. [DOM] création de fichier XML avec PHP
    Par cortex007 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 09/12/2007, 11h31
  2. [DOM] Création d'un noeud xml avec childNode
    Par starr dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/03/2007, 11h18
  3. [XSLT] création d'un RSS : diffusion des liens xml avec xslt
    Par elhout dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/03/2007, 16h23
  4. [JDOM] Création d'un fichier xml avec jdom
    Par fabricew59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/08/2006, 11h17
  5. [DOM XML][XSLT] Création d'un document XML avec PHP
    Par ToxiZz dans le forum Bibliothèques et frameworks
    Réponses: 21
    Dernier message: 16/01/2006, 17h44

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