0

我有一个现有的 XML 存储在 InternalFielStorage 中作为..

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>
  <Books>
        <Author name="Sam" />
  </Books>
</Root>

我正在尝试在“作者”节点下附加一个“标题”节点,但是在保存时,我看到一个完全新的 xml 添加到现有的 xml 作为..

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>
    <Books>
        <Author name="Sam" />
    </Books>
</Root>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>  
    <Books>
        <Author name="Sam" />        
        <Title>Test</Title>
    </Books>
</Root>

我为此使用的代码..

使用 (IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication())
  {
     使用 (IsolatedStorageFileStream myStream = new IsolatedStorageFileStream(App.FileName, FileMode.Open, FileAccess.ReadWrite, myStore))
     {
           XDocument _xDoc = XDocument.Load(myStream);
           XElement srcTree = new XElement("Title", "test");
           _xDoc.Element("Root").Element("Books").Add(new XElement(srcTree));
           _xDoc.Save(myStream);

问题:
1. 如何避免将新的 XML 附加到现有的 XML 中?
2. 如何使“title”标签位于<"Author name="Sam"> 标签下?

提前致谢。

4

1 回答 1

1

加载流时,位置设置为文件的最后一个字节 - 您需要在保存文件之前重置位置。

这样做

myStream.Position = 0;
_xDoc.Save(myStream);

请参阅此处的文档

于 2013-09-30T08:19:44.637 回答