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

C# Discussion :

Fermeture balise xml via C#


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Points : 56
    Points
    56
    Par défaut Fermeture balise xml via C#
    Bonjour,

    je créée actuelement une application C# qui génère un fichier xml.
    Le problème est que je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xml.WriteStartElement("product id=\"" + produit.IdProduit + "\"");
    ce qui me génère:
    Mais lors de la fermeture de la balise, je fais:
    ce qui me retourne:
    Alors que je voudrais:
    Auriez-vous une piste s'il vous plait?

    Merci par avance, bonne fin de journée à tous et bon courage

  2. #2
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Bonjour,

    A priori c'est normal qu'il te retourne

    car tu lui dit d'ouvrir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xml.WriteStartElement("product id=\"" + produit.IdProduit + "\"");
    donc en simplifiant :
    Ce que j'ai du mal à comprendre c'est pourquoi il te faut absolument un
    Ou alors il nous manque un morceau de code

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Ce que j'ai du mal à comprendre c'est pourquoi il te faut absolument un
    "Simplement" parceque si je ferme par </product id="00114">, alors ma fermeture de balise n'est pas valide.
    Si tu crée un petit fichier avec <product id="00114"></product id="00114"> tu ne pourra pas l'ouvrir alors que <product id="00114"></product> fonctionnera parfaitement. C'est pas moi qui veut ca

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Solution trouvée pour ceux que ca pourrait interesser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xml.WriteStartElement("product");
                    xml.WriteAttributeString("id", produit.IdProduit);

    Merci à tous et bonne soirée

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par 18carats Voir le message
    ce qui me retourne:
    Euh... si c'est vraiment ça, c'est un méga bug dans XmlWriter
    Ce serait pas plutôt ça ?
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <product id="00114" />

    Parce que dans ce cas c'est du XML parfaitement valide, c'est une forme "condensée" de ça :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <product id="00114"></product>

    Quand un élément n'a pas de contenu, c'est la forme compacte est utilisée. Il est sans doute possible de modifier ce comportement en bidouillant un peu (j'ai déjà vu une discussion à ce sujet, je vais essayer de la retrouver), mais à mon avis ça ne sert à rien. La forme compacte est tout aussi correcte que la forme développée

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    ah pardon, j'ai mal compris ton problème en fait...

    WriteStartElement prend en paramètre un nom d'élément, mais toi tu lui passes en même temps l'attribut et sa valeur, donc le XmlWriter crois que le nom de l'attribut est product id="00114", alors que c'est juste product.

    Il faut utiliser WriteAttributeString :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xml.WriteStartElement("product");
    xml.WriteAttributeString("id", produit.IdProduit);
    xml.WriteEndElement();

    EDIT: grillé, tu as trouvé tout seul

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

Discussions similaires

  1. [Python 2.X] Récupérer valeur d'une balise XML via Python
    Par jimmy1708 dans le forum Général Python
    Réponses: 2
    Dernier message: 08/07/2014, 17h47
  2. Supprimer des balises d'un fichier XML via XSLT
    Par LaBastoss dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/12/2012, 20h44
  3. XML via Oracle: Problème de balise
    Par EtyenH dans le forum PL/SQL
    Réponses: 2
    Dernier message: 06/07/2010, 10h44
  4. accès balise xml via une string
    Par armelleV dans le forum Flex
    Réponses: 0
    Dernier message: 26/03/2009, 10h17
  5. [XSLT] Affichage des balises xml en html via une xslt
    Par Eileen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/04/2007, 15h53

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