Windows 7 Phone を開発しようとしていて、解析してから Linq クエリを実行する必要がある XML ファイルを使用しています。
問題はこれです:
ファイル (ローカルに保存されている) にアクセスしようとすると、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;
}
エラー: - 「NullReferenceException が未処理でした」