Linq to XML を使用して、分離ストレージから Xml ファイルを読み込もうとしています。
私のファイルには上記のコードが含まれています:
<?xml version="1.0" encoding="utf-8"?>
<lense>
<days>14</days>
<date>5/29/2012</date>
<useToday>True</useToday>
<dateUseToday />
</lense>
私はそのようなクエリを書きます:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("Lenses.xml", FileMode.Open, store))
{
var custs = from c in XElement.Load(isoStream).Elements("Lense")c;
}
}
しかし、私は次のエラーがあります:
ルート要素がありません
どうしてか分かりません ?説明して助けてもらえますか?
ご協力いただきありがとうございます!
しかし、次のコードを試すと、同じルート要素エラーが発生します。
var custs = from c in XDocument.Load(isoStream).Elements("Lense")
select c;
このコードを使用して、分離ストレージ内の xml ファイル ストアを確認します。
using (StreamReader reader = new StreamReader(store.OpenFile("Lenses.xml", FileMode.Open)))
{
MessageBox.Show(reader.ReadToEnd());
}
また、xml ファイルには要素が 1 つだけ含まれています。
<?xml version="1.0" encoding="utf-8"?>
<lense>
<days>14</days>
<date>5/29/2012</date>
<useToday>True</useToday>
<dateUseToday />
</lense>
手伝ってくれてありがとう !
XmlReader を使用して xml ドキュメントを操作できることを知っています。
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("Lenses.xml", FileMode.Open, store))
{
isoStream.Position = 0;
XmlReader xmlReader;
xmlReader = XmlReader.Create(isoStream);
xmlReader.MoveToContent();
while (xmlReader.Read())
{
switch (xmlReader.NodeType)
{
case XmlNodeType.Element:
{
if (xmlReader.Name == "date")
{
// Code here
}
}
}
}
}
それは機能しますが、可能であれば、xml ソリューションよりも linq を好みます。
ご協力いただきありがとうございます !