【问题标题】:Copy whole xml file in other xml in c#在c#中将整个xml文件复制到其他xml中
【发布时间】:2013-01-23 01:00:09
【问题描述】:

我有这个 xml 文件:http://www.studiovincent.net/list.xml

我需要将整个内容复制到其他 xml 文件中。

我试过这段代码:

string sourcefile = "http://www.studiovincent.net/list.xml";
string destinationfile = "test.xml";
System.IO.File.Copy(sourcefile, destinationfile);

但不起作用,因为我收到此错误:不支持 URI 格式。

我该如何解决这个问题?

【问题讨论】:

  • text.xml的文件路径是什么你试过用完整的文件路径复制它吗
  • test.xml 在应用程序路径中
  • 您不能使用File.Copy从URL复制文件,您需要使用WebClient或类似的方式下载文件,然后将其复制到另一个位置(如果需要) .

标签: c# xml xml-parsing


【解决方案1】:

File.Copy() 不支持http:// 协议,因此出现URI formats are not supported 错误。

您可以通过将页面内容读入字符串,然后将其写入文件来解决此问题。

WebClient client = new WebClient();
string contents = client.DownloadString("http://www.studiovincent.net/list.xml");

// write contents to test.xml
System.IO.File.WriteAllText ("test.xml", contents);

请注意,WriteAllText() 将创建 test.xml 如果它不存在,如果它存在则覆盖它。您还需要将上述代码包装在 try / catch 块中,并捕获和处理适当的异常。

【讨论】:

  • 我试过没有成功,text.xml 是空白的。 :(
  • 尝试其他答案(下载文件)。另外,您是否正在追赶异常?进入调试模式并检查字符串以确保它下载了内容。
【解决方案2】:

我建议使用WebClient.DownloadFile。下载字符串然后保存可能会导致字符集映射出现问题。

WebClient client = new WebClient();
client.DownloadFile("http://www.studiovincent.net/list.xml", "test.xml");

这会直接复制文件,而不是将数据转换为字符串,这可能会进行一些字符串转换(例如,文件是 Unicode,而WebClient 认为它是 UTF-8)然后复制到文件。

【讨论】:

  • 这看起来比我的解决方案更好。
  • 我尝试了两种解决方案,但 xml 仍然为空。我不知道问题出在哪里。
  • @vincenzolopalo:我刚刚测试了该代码,它工作正常。您确定您正在寻找文件的正确位置吗?我在调试模式下在 Visual Studio 下运行它。它在 bin\debug 目录中写入了文件test.xml
  • 有效!!谢谢,我在应用程序文件夹中找到了文件!再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多