在服务器WPF上保存xml文件

时间:2016-08-30 11:26:59

标签: c# xml wpf

我在服务器上有一个xml文件,网址就像

http://exampldomain.net:81/sample_xml_sd.xml

我正在使用以下代码在wpf应用程序上读取xml并且工作正常

string xml_path="http://exampldomain.net:81/sample_xml_sd.xml";
XmlDocument doc = new XmlDocument();
doc.Load(xml_path);

// Add a price element.
XmlElement newElem = doc.CreateElement("price");
newElem.InnerText = "10.95";
doc.DocumentElement.AppendChild(newElem);

// Save the document to a file. White space is
// preserved (no white space).
doc.PreserveWhitespace = true;
doc.Save(xml_path);

在将xml提交到远程网址以保存时,我收到了错误

  

不支持URI格式。

是否允许从这样的桌面应用程序中保存服务器上的文件? 或者代码中有任何错误[如果可以在服务器上保存xml]

我检查了服务器上文件的文件权限及其读写启用

1 个答案:

答案 0 :(得分:2)

正如 @Smartis 的评论中所建议的那样,您应该使用FTP协议将文件保存到服务器。它可以如下所示完成:

public static void uploadToFTP (XmlDocument xml)
{
    using(FtpWebRequest request = (FtpWebRequest)WebRequest.Create("your FTP URL"))
    {
        request.Method = WebRequestMethods.Ftp.UploadFile;

        // Insert your credentials here.
        request.Credentials = new NetworkCredential ("username","password");

        // Copy the contents of the file to the request stream.
        request.ContentLength = xml.OuterXml.Length;

        Stream requestStream = request.GetRequestStream();
        xml.Save(requestStream);
        requestStream.Close();

        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        response.Close();
    }
}

在这里,只需使用该方法,将xml文件作为参数。