如何从其他网站保存和读取xml文件?

时间:2016-01-29 22:24:28

标签: c# xml asp.net-mvc

我有这个链接:http://www.bnro.ro/nbrfxrates.xml到每日货币的xml文件。

我想将此xml保存在我的网站ex的文件夹中。 (〜/内容/ CurrencyXml)。

我想每天保存,第一次用户访问我的网站时(必须替换旧文件)。

我还希望在一个静态方法中读取它,该方法返回一个具有每种货币类型的对象,如属性,以便访问它:

price=model.Eur * 100;

你能帮我举个例子,说明如何保存这个xml的副本以及如何阅读它吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的方法来读取文件并保存

public void readFile()
{
       XmlDocument document = new XmlDocument();
       document.Load("http://www.bnro.ro/nbrfxrates.xml");
       document.Save(Path.Combine(
       Server.MapPath("~/Content/CurrencyXml"),"myFile.xml"));
}

在这里你可以找到非常有用的信息:

XmlDocument Microsoft

答案 1 :(得分:1)

以下是Windows服务的示例:

Walkthrough: Creating a Windows Service Application in the Component Designer

以下是如何使用WebClient下载xml的示例:

How can I download an XML file using C#?

以下是有关如何将文件保存到服务器的示例:

C# save files to folder on server instead of local

然后使用@Augustin建议的内容。

如果您确实使用了标志文件方案,我建议将xml文件保存到临时文件中,并且只有在完全下载后,才会覆盖原始文件,并确保处理锁定,覆盖时间等...另外一个解决方案是使用保存当前文件名的临时变量,当您下载新文件时,只需给它一个新名称,下载后,将该变量名称设置为新文件名,并确保您的加载函数使用该变量和从新文件名加载数据。不要忘记删除旧文件,但至少它会避免锁定问题(如果有的话),您可以随时尝试再次删除该文件。

如果您的网站是否全天候访问,将非常依赖。如果它不是一个问题,因为当你知道它没有被使用时你可以使用windows服务下载这个文件。如果您使用Windows服务,在使用时,将适用上述相同。如果您使用的是Azure,则可以使用WebJob。我确信有很多不同的解决方案可以解决这个问题,你只需找到一个能满足你需求的解决方案。