2010-11-03 59 views
0

我敢肯定,我在这里错过了一些非常明显的东西。使用XmlTextReader通过http读取同一服务器上的文件

我在/content/mydoc.xml中有一个XML文档的ASP.NET MVC2应用程序。我想使用的XmlTextReader加载它:

XmlTextReader reader = new XmlTextReader("/content/mydoc.xml"); 

步进通过,我可以看到,这是被解析为file:///C:/content/mydoc.xml

我知道我可以使用Server.MapPath()获得文件路径,但似乎相当的hackish因为XML文档可以通过http获得。

有没有办法让XmlTextReader正确解析URL?

回答

1

如何

XmlTextReader reader = 
    new XmlTextReader(Url.GenerateContentUrl("~/content/mydoc.xml")); 

当然,你需要一个UrlHelper实例来手来完成这个(可作为URL字段中的视图和控制器)。

编辑

如果我知道文件的人的生活,我更愿意去为它作为一个文件,而不是使用HTTP的开销。因此MapPath似乎是一个很好的选择。

+0

谢谢。但是,这似乎将〜/ content/mydoc.xml解析回/content/mydoc.xml。我可以使用http://stackoverflow.com/questions/1288046/how-can-i-get-my-webapps-base-url-in-asp-net-mvc中的答案获取基本URL并构建完整URL,但似乎相当复杂的东西,似乎应该很简单 – 2010-11-03 01:58:24

+2

我认为你的原始方法是最好的。看我的编辑。 – spender 2010-11-03 02:00:08

+0

+1通过文件系统而不是HTTP访问文件,除非你有特定的理由去做。 – jasper 2010-11-03 02:19:25

相关问题