当前位置:  开发笔记 > 编程语言 > 正文

Xml不保存到文件

如何解决《Xml不保存到文件》经验,为你挑选了1个好方法。

我在Xamarin中编写Android应用程序

我有写入文件的xml(已实现)

在不同的Activity上我尝试打开这个文件,替换一些字符串并保存

像这样打开文件

var doc2 = new XmlDocument();
        var documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
        var filePath = System.IO.Path.Combine(documentsPath, "myFile.xml");
        doc2.Load (filePath);

替换这样的字符串:

string str;
            str = doc2.OuterXml;

                str = str.Replace ("{ProductCode}", Code1);

            Console.WriteLine ("look");
            Console.WriteLine (str);

            doc2.Save (filePath);
            Console.WriteLine (doc2.OuterXml);

当我显示str时,我看到"ProductCode"发生了变化.

但当我显示"doc2.OuterXML"时,我发现它没有保存.

这是"str":

  

这是doc2之后doc2.Save (filePath);:

为什么不保存?



1> Jon Skeet..:

您尚未修改文档.您已经向文档询问了自身的字符串表示形式,然后为同一个变量分配了一个新字符串 - 但这根本不会更改文档中的XML.

我强烈建议您使用LINQ to XML(这是一个更好的XML API),此时您可以:

XDocument doc = XDocument.Load(filePath);
var query = doc.Descendants("Product")
               .Where(p => (string) p.Attribute("Code") == "{ProductCode}");
foreach (var element in query)
{
    element.SetAttributeValue("Code", Code1);
}
doc.Save(filePath);

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有