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 :

[C#] Comment charger un fichier XML avec un path relatif ?


Sujet :

ASP.NET

  1. #1
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut [C#] Comment charger un fichier XML avec un path relatif ?
    Bonjour à tous,

    Après plusieurs heures d'essais vains je me tourne vers vous pour un problème que je rencontre lorsque je souhaite ouvrir un fichier XML.

    Voici un bout de code simplifié qui cerne le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String path = "/toto/toto/titi/menu.xml";
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(@path);
    Le problème c'est qu'au moment du Load, une erreur est générée car l'argument pris par la fonction n'est pas exactement le path que je défini dans ma variable (qui est bon en relatif) mais ce path précédé de "C:", donc forcément le fichier n'est pas trouvé.

    Donc au final mon path en relatif est bon par rapport à mon appli (là n'est pas le problème), mais comme il ajoute C: devant on obtient un path absolu qui n'est plus le bon.

    Merci d'avance pour votre aide.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    il faut lui passer un path absolu.
    Dans une winform, tu récuperes le path de l'appli puis tu ajoutes le path relatif :
    System.Windows.Forms.Application.StartupPath + "\toto\titi.XML"

  3. #3
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Merci pour ta réponse, je viens de voir que j'ai oublié de préciser que je suis en Webforms (et Framework 1.1).

    Donc je vais devoir me débrouiller pour récupérer le path absolu de l'appli si je comprends bien.

    Avec la réponse de franck25 (System.Windows.Forms.Application.StartupPath) j'obtiens une réponse un path du style C:\WINNT\Microsoft.NET\Framework\v1.1.4322, mais mon fichier XML est dans mon dossier Inetpub\wwwroot pour le développement... Comment situer mon fichier XML par rapport à mon fichier cs ? Il y a un truc qui doit m'échapper là
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    oui car nous apprenons après coup que tu travailles en ASP.Net
    Donc je déplace ton post dans le forum approprié.
    Sinon d'un vague souvenir il me reste que l'on peut indiquer la racine du site par ~/
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par neguib
    oui car nous apprenons après coup que tu travailles en ASP.Net
    Donc je déplace ton post dans le forum approprié.
    Sinon d'un vague souvenir il me reste que l'on peut indiquer la racine du site par ~/
    Arf merci pour ta réponse je suis un peu paumé dans les forums liés à dotnet, merci pour le déplacement de post
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  6. #6
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    J'ai eu le même problème, et comme le dit JWhite, le path racine en ASP.NET est bien ~.

    Donc, si l'on reprend ta source, tu peux aisement la modifier en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String path = "~/toto/toto/titi/menu.xml";
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(path);
    Rien n'est impossible, c'est juste une question de temps
    C'est quoi le PureBasic ?

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Merci pour ton aide CORBASE.

    Lorsque je lance le code avec le tilde j'obtiens ceci :

    Impossible de trouver une partie du chemin d'accès "C:\WINNT\system32\~\toto\toto\titi\menu.xml".
    C'est comme si la fonction load rajoutait C:\WINNT\system32\ avant le path, étrange (avant ça rajoutait juste C:\ ce qui n'était pas bon non plus).

    Je capte vraiment pas là
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  8. #8
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Hum ..

    Alors là, moi non plus je ne comprends pas car chez moi tout est basé sur le ~/ car tout mes redirects et ouverture de fichier XML est basé là dessus.

    Cela me permet justement de ne pas avoir de problème en déployant mes applications du serveur de développement au serveur de production ...

    Cependant, je n'est jamais eu cette erreur !

    Tu utilise quel éditeur et quel framework ?
    Rien n'est impossible, c'est juste une question de temps
    C'est quoi le PureBasic ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Server.MapPath(fichier);
    ex : si le fichier se trouve sur c:/InetPub/wwwroot/Appli/resources/fich.xml
    // Renvoi c:/InetPub/wwwroot/Appli/resources/fich.xml
    string chemin = Server.MapPath("resources/fich.xml");
    Cordialement.

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par CORBASE
    Tu utilise quel éditeur et quel framework ?
    VS 2003, Framework 1.1

    Citation Envoyé par fnganiet
    Server.MapPath(fichier);
    ex : si le fichier se trouve sur c:/InetPub/wwwroot/Appli/resources/fich.xml
    // Renvoi c:/InetPub/wwwroot/Appli/resources/fich.xml
    string chemin = Server.MapPath("resources/fich.xml");
    Cordialement.
    WAW ça marche très bien (en dev, j'espère que sur le serveur de production ça marchera aussi mais je vois pas pourquoi ça foirerait), tu m'enlèves un énorme poids là,


    <B>
    MERCI
    </B>

    à toi fnganiet , et merci aussi à CORBASE pour ton aide

    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

Discussions similaires

  1. Charger un fichier XML avec MSXML
    Par vanes92 dans le forum XML
    Réponses: 6
    Dernier message: 27/07/2006, 14h49
  2. [DOM] Comment generer ce fichier XML avec DOM ?
    Par jlassira dans le forum Format d'échange (XML, JSON...)
    Réponses: 18
    Dernier message: 10/04/2006, 09h12
  3. comment ouvrir un fichier XML avec excel
    Par ALCINA dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 24/03/2006, 14h42
  4. [XML] Comment parser ce fichier XML avec java !
    Par jlassira dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 13/03/2006, 12h56

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