【问题标题】:how to modify a .plist file using c#?如何使用 c# 修改 .plist 文件?
【发布时间】:2013-09-08 01:45:28
【问题描述】:

如何将第14行更改为更改值,然后将其保存为.plist文件!我正在尝试使用 XmlElement 然后保存它,但问题是在我保存该文件后,doctype 行将是,我的意思是“[]”已添加到 doctype 行的末尾,这将在 iPhone 使用时引起问题这个文件.in c#,如何以正确的方式编辑它?

我使用下面的代码来修改 .plist 文件:

XmlDocument doc = new XmlDocument();
        string plistPath = "app.plist";
        doc.Load(plistPath);
     foreach (var node in doc.SelectNodes("//string"))
        {
            if (node is XmlElement)
            {
                var elem = (XmlElement)node;
                if (elem.InnerText == "software-package")
                {
                    var versionElement = elem.NextSibling.NextSibling as XmlElement;
                    if (versionElement != null)
                    {
                        versionElement.InnerText = "PCDownload Url";
                    }
                }
            }
        }
        doc.Save(plistPath);

并且 DOCTYPE 行将更改为:http://www.apple.com/DTDs/PropertyList-1.0.dtd"[]> 在 .plist 文件中。

【问题讨论】:

  • 你的意思是objective-c吗?为什么在 iOS 环境中使用 c#?

标签: c# ios


【解决方案1】:

我认为您的问题与 XmlDocument.Save() 方法有关。如您所知,XML 和 plist 文件略有不同,但 Save() 方法会在保存时尝试将 XML 属性应用于您的 plist。

这里有一些选项:

1) 使用正则表达式。将文件内容缓冲到 byte[] 中,使用正则表达式进行更改,然后将该缓冲区写入 .plist。

2) 使用 XML 解析器解析文档,但不要使用内置的 Save() 方法。这可能仍会导致 plist 文件发生不必要的修改,但值得一试。

【讨论】:

  • 哇,我在网上搜索了有关 XmlDocument.Save() 的这个错误,有一个解决方法。我用它解决了我的问题!你的第一个选项听起来不错,我会尝试一下,虽然我对这个方法没有更多的了解!谢谢~~
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多