Interroger et sauvegarder un fichier XML à distance

Signaler
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
Bonjour,

Une partie de mon programme interroge un fichier XML distant :

string filename = "http://www.mywebsite.com//fichierxml.xml";                   
 
XmlDocument xmldoc = new XmlDocument();
XPathNavigator nav;
XPathNodeIterator iter;
xmldoc.Load(filename);


En lisant le contenu de ce fichier, mon programme doit effectuer des modifications, puis sauvegarder le fichier XML dans le même emplacement "filename"...

xmldoc.Save(filename);


Sur la ligne précédente, j'ai une exception :

URI formats are not supported

Comment puis-je rectifier cette erreur ?

Merci d'avance

4 réponses

Messages postés
16295
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
563
Bonjour,

la dernière fois (ça fait longtemps) que j'ai mis des pages en ligne il fallait passer par un ftp avec login et mot de passe.

A la main peux tu modifier le xml sur le site web?
Si non, alors c'est surement un truc dans le genre, les sites sont en lecture seule


Whismeril
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Salut,

Merci pour ta réponse... oui je peux modifier mon fichier XML à la main mais malheureusement je ne peux pas le faire par le biais de mon programme !!! J'ai lu quelque part qu'il faut utiliser Server.MapPath !!! je ne trouve pas cet espace de nom + je ne sais pas comment faire puisque la documentation est en anglais.
Messages postés
16295
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
563
Quand tu trouves un code et qu'il te manque un espace de nom, il te suffit de faire click-droit / résoudre sur le mot clé souligné par VS avec l'erreur "le type ou l'espacement de nom introuvable".

Ça te propose l'espace de nom à ajouter, mais dans ton cas server me propose "Microsoft.SqlServer.Server" et une fois ajouté, MapPath n'affiche pas le menu résoudre, c'est donc que ma version de VS ne connait pas ce mot clé (VS 2010 express Framework 4.0).

Je ne peux pas t'aider plus de ce coté.

Par contre je lis dans cette page, que cette méthode issue du SDK Internet Information System (que je ne connait pas du tout) n'aime pas les
Double slashes (// or \\)


Peut être que ton problème de SavaAs vient de là aussi.

As tu essayé:
string filename = @"http:/www.mywebsite.com/fichierxml.xml";


Je sais que ça marche pour les chemins locaux avec \ pour les adresses web je ne sais pas.



Whismeril
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
Salut,

Server.MapPath ne te servira pas
c'est de l'asp.net qui sert à résoudre les chemins locaux aux serveur web DEPUIS une autre page web de ce même serveur, ce n'est pas ton cas.

il faut que tu fasse un upload via

HttpWebRequest myWebRequest WebRequest.Create (url) as HttpWebRequest;
myWebRequest.Method = "PUT";



bye...