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 :

[C#]Création d'un fichier XML


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut [C#]Création d'un fichier XML
    Bonjour à tous,

    Tout d'abord j'espère être dans la bonne section, dans le cas contraire merci au(x) modérateur(s) de déplacer mon topic.

    Voilà mon soucis :
    Je crée un fichier XML de cette manière (je vous passe la totalité du code) :

    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
                string strXML="<?xml version=\"1.0\"?><scan>";
                foreach (string key in hComp.Keys)
                {
                   strXML+="<computer>";
                   strXML+="<address>"+((computer)hComp[key]).strIP+"</address>";
                   strXML+="<dnsName>"+((computer)hComp[key]).strDNS+"</dnsName>";
                   strXML+="<domain>"+((computer)hComp[key]).strDomain+"</domain>";
                   strXML+="<hostName>"+((computer)hComp[key]).strHost+"</hostName>";
                   strXML+="<macAddress>"+((computer)hComp[key]).strMacAddress +"</macAddress>";
                   strXML+="<nbtName>"+((computer)hComp[key]).strNbtName+"</nbtName>";
                   strXML+="<os>"+((computer)hComp[key]).strOS+"</os>";
                   strXML+="<type>"+((computer)hComp[key]).strType +"</type>";
                   strXML+="</computer>";
                }
                strXML += "</scan>";
                XmlDocument resXML = new XmlDocument();
                resXML.InnerXml = strXML;
                resXML.Save("./res_scan_" + strPostfix + ".xml");

    Lorsque j'insère les données contenues dans le fichier XML dans ma base de données (SQL serveur 2005), il se passe deux choses :

    Soit les éléement contiennent des données et dans ce cas pas de soucis
    Soit il ne contiennent pas de données et à ce moment là ils insèrent 4 blancs.

    Celà est du a la formation du fichier XML :

    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
    <?xml version="1.0"?>
    <scan>
      <computer>
        <address>111.111.111.111</address>
        <dnsName>dnsname1</dnsName>
        <domain>
        </domain>
        <hostName>hostname1</hostName>
        <macAddress>
        </macAddress>
        <nbtName>
        </nbtName>
        <os>
        </os>
        <type>
        </type>
      </computer>
    </scan>
    Je suppose donc que l'indentation entre la balise ouvrante et la balise fermante est prise en compte lorsqu'il n'y a aucune données !

    Merci de votre aide si vous entrevoyez le début d'une solution

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Salut

    Ton code ne sert qu'a creer un fichier XML?

    Si oui utilise simplement un StringWriter et enregistre le fichier avec l'extension ".XML"

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Merci à toi de prendre le temps de répondre.

    Pour apporter quelques précisions, le code se base sur les informations issues de scan (nmap, nbtscan) afin d'en sortir les informations récoltées sous format d'un fichier xml.

    Donc pour répondre à ta question, ou et non ^^

    Un simple stringwriter à l'extension xml prendrai automatiquement la bonne forme (balise ? version ? etc ?)

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    J'ai cherché dans ta direction et j'ai réussi en procédant comme suit :

    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
                    string FILE_NAME = "MyFile.xml";
                    StreamWriter sr = File.CreateText(FILE_NAME);
                    sr.WriteLine("<?xml version=\"1.0\"?><scan>");                  
     
                    foreach (string key in hComp.Keys)
                        {
                           sr.WriteLine ("<computer>");
                           sr.WriteLine ("<address>"+((computer)hComp[key]).strIP+"</address>");
                           sr.WriteLine ("<dnsName>"+((computer)hComp[key]).strDNS+"</dnsName>");
                           sr.WriteLine ("<domain>"+((computer)hComp[key]).strDomain+"</domain>");
                           sr.WriteLine ("<hostName>"+((computer)hComp[key]).strHost+"</hostName>");
                           sr.WriteLine ("<macAddress>"+((computer)hComp[key]).strMacAddress +"</macAddress>");
                           sr.WriteLine ("<nbtName>"+((computer)hComp[key]).strNbtName+"</nbtName>");
                           sr.WriteLine ("<os>"+((computer)hComp[key]).strOS+"</os>");
                           sr.WriteLine ("<type>"+((computer)hComp[key]).strType +"</type>");
                           sr.WriteLine ("</computer>");
                        }
                      sr.WriteLine("</scan>");
                      sr.Close();
    Merci

  5. #5
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    un fichier xml n'est qu'un fichier texte

    Petite remarque pour ton dernier code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sr.WriteLine ("<address>");
    sr.Write((computer)hComp[key]).strIP;
    sr.Write("</address>");
    est beaucoup plus efficace que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sr.WriteLine ("<address>"+((computer)hComp[key]).strIP+"</address>");
    Une concatenation de 2 chaines cree une nouvelle chaine, tu cree des objets inutilement. C'est un detail important uniquement si tu compte ecrire des fichiers frequement.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Je te remercie de la précision, elle sera à mon avis bien utile puisque le programme enregistrera dans la centaine de milliers d'objets tous les deux jours ^^

    Encore une fois merci

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

Discussions similaires

  1. [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
  2. [XSD] Création d'un fichier XML
    Par Taylor² dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 06/06/2006, 22h16
  3. Création d'un fichier XML
    Par fantasio31 dans le forum Général Python
    Réponses: 2
    Dernier message: 09/09/2004, 17h06
  4. [XML] Création d'un fichier XML
    Par TheDarkLewis dans le forum Langage
    Réponses: 6
    Dernier message: 24/07/2004, 18h27
  5. ligne d'entête création d'un fichier XML
    Par cduterme dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 23/02/2004, 15h30

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