如何使用c#修改.plist文件?

时间:2013-09-04 13:51:06

标签: c# ios

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

app.plist

我使用下面的代码来修改.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行将更改为:< !DOCTYPE plist PUBLIC“ - // Apple // DTD PLIST 1.0 // EN”“http://www.apple.com/DTDs/PropertyList-1.0.dtd”[]>在.plist文件中。

1 个答案:

答案 0 :(得分:1)

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

以下是一些选项:

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

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