1

以下のxmlは、私のWindowsPhoneアプリケーションで解析されます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
   <dict>
  <key>2013</key>
   <dict>
      <key>January</key>
        <dict>
        <key>Girivalam</key>
        <dict>
            <key>StartDate</key>
            <date>2013-01-26T04:10:00Z</date>
            <key>EndDate</key>
            <date>2013-01-27T05:26:00Z</date>
            <key>FullMoon</key>
            <date>2013-01-26T04:10:00Z</date>
        </dict>
                </dict>
       </dict>
      </dict>
</plist>

次のコードを使用して解析しました。

   private void Parsing()
    {
        using (XmlReader reader = XmlReader.Create(new StringReader("/Parse/appmodel-data.xml")))
        {
            XDocument document = XDocument.Load(reader);
            IEnumerable<XElement> AuthElement = from elements in document.Descendants("dict")
                                                select elements;
        }
    }

アプリケーションiamを実行すると、「ルートレベルのデータが無効です。1行目、1行目」というエラーが表示されます。誰かが私が間違っていたところを訂正できますか?

前もって感謝します

4

2 に答える 2

1
StreamResourceInfo xml = Application.GetResourceStream(new Uri("/ProjectName;component/FileFolder/filename.xml", UriKind.Relative));
XElement xmlElement = XElement.Load(xml.Stream);

ステートメント自体を使用できます。XMLのパスを正しく参照することだけが重要です。

于 2013-01-28T09:56:21.160 に答える
1

ファイルをリソースとしてマークし、次のことを試してください。

System.IO.Stream fileStream = Application.GetResourceStream(new Uri(@"/Change this with the AssemblyName;component/Parse/appmodel-data.xml",UriKind.Relative)).Stream;

XDocument document = XDocument.Load(fileStream);                        
IEnumerable<XElement> AuthElement = from elements in document.Descendants("dict")
                                        select elements;
于 2013-01-28T09:56:42.640 に答える