3

这是我将数据添加到 xml 的代码:

IsolatedStorageFile isstore = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream bookfile = new IsolatedStorageFileStream("People.xml", System.IO.FileMode.Open, isstore);

XDocument xmldetails = XDocument.Load(bookfile);
XElement books =
    new XElement("person",
    new XAttribute("id", "5"),
    new XAttribute("name", "Book Title"),
    new XAttribute("beneficiary", "Book Author"),
    new XAttribute("description", "Book Author"),
    new XAttribute("deadline", "Book Author"),
    new XAttribute("price", "Fiction"));
xmldetails.Root.Add(books);

xmldetails.Save(bookfile);
bookfile.Close();

这是 People.xml:

<?xml version="1.0" encoding="utf-8" ?>
<people>
    <person index="1" name="Zlecenie numer jeden" beneficiary="Kowalski" description="Proste zlecenie jakiejs strony czy cos" price="800" deadline="27.12.2013" />
</people>

当我单击按钮时,出现此错误:

根级别的数据无效。第 1 行,位置 1。

4

2 回答 2

1

您的 XML 文件似乎缺少根节点,而您正尝试将子节点添加到不存在的父节点。确保您的源 XML 格式正确。

顺便说一下,在你的代码中你应该做的是:

XElement books =
            new XElement("person",
            new XAttribute("id", "5"),
            new XAttribute("name", "Book Title"),
            new XAttribute("beneficiary", "Book Author"),
            new XAttribute("description", "Book Author"),
            new XAttribute("deadline", "Book Author"),
            new XAttribute("price", "Fiction"));
xmldetails.Element("People").Add(books);
于 2013-01-10T19:27:39.913 回答
1

它应该是

xmldetails.Root.Add(books);

people是xml的根所以你不需要指定它..

您应该使用Root属性..

于 2013-01-12T18:31:56.350 回答