Visual Studio 找不到 XML 文件
本文关键字:文件 XML 找不到 Studio Visual | 更新日期: 2023-09-27 17:55:55
我正在尝试开发Windows 7 Phone,我正在使用一个XML文件,我需要解析该文件,然后执行Linq查询。
问题是这样的:
每当我尝试访问该文件(它存储在本地)时,它都会返回一个错误,指出找不到该文件,因为它不是 XAP 包的一部分。
我已经尝试了另一种使用StreamReader
的解决方案,但我仍然收到模拟错误:
尝试访问该方法失败 System.IO.File.OpenText(System.String)
这是我正在使用的代码:
using (StreamReader reader = File.OpenText("C:/Users/Desktop/Assign/obj/Debug/buildings.kml"))
{
var xdoc = XDocument.Load ("buildings.kml");
XNamespace kml = "http://www.opengis.net/kml/2.2";
var dict = xdoc.Descendants(kml + "Placemark")
.ToDictionary(d => d.Element(kml + "name").Value,
d => d.Element(kml + "id").Value);
foreach (var b in dict) {
Console.WriteLine ("Building Name -> " + b.Key + " Building ID -> " + b.Value);
}
}
该文件位于:> C:/Users/Desktop/Assign/obj/Debug/buildings.kml所以我看不到问题。在Visual Studio之外,我可以很好地阅读.xml文件。
希望有人能帮忙
编辑:
新代码 -
Dictionary<string, string> getBuildingNames()
{
Uri uri = new Uri(@"Data'mydata.kml", UriKind.Relative);
StreamResourceInfo sri = Application.GetResourceStream(uri);
StreamReader sr = new StreamReader(sri.Stream);
var xdoc = XDocument.Load(sr);
XNamespace kml = "http://www.opengis.net/kml/2.2";
var dict = xdoc.Descendants(kml + "Placemark")
.ToDictionary(d => d.Element(kml + "name").Value,
d => d.Element(kml + "id").Value);
return dict;
}
错误: - "空引用异常未处理"
假设您确实尝试将其作为WP7项目的一部分(而不是与之相关的非移动项目,例如预处理),则不应使用File.OpenText
。
选项:
- 将 XML 包含在 XAP 文件中,并使用
Application.GetResourceStream
从中读取(有关详细信息,请参阅此博客文章) - 以某种方式将 XML 放入独立存储,并使用独立存储 API
- 将资源嵌入到程序集中,并使用
Assembly.GetManifestResourceStream
。
还有一些技巧可以帮助您:
1) 将 xml 文件的"生成操作"属性更改为"内容"。(选择该文件并转到 Visual Studio 中的属性窗口)
2)如果您只想从文件中读取,则无需将文件保存在隔离存储中。如果正确设置了"生成操作"属性,则只需阅读即可。
您可以使用 XDocument 来读取文件。
XDocument xdoc = XDocument.Load(filepath);
其中 filepath 只是 XML 文件的相对路径,即如果您没有将其放置在项目的任何文件夹中,那么它将只是文件名(假设它是根目录)