0

如何将第 14 行更改为更改值,然后将其保存为 .plist 文件!我正在尝试使用 XmlElement 然后保存它,但问题是在我保存该文件后,doctype 行将是,我的意思是“[]”已添加到 doctype 行的末尾,这将在 iPhone 使用时引起问题这个file.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 行将更改为:< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" " " http://www.apple.com/DTDs/PropertyList-1.0.dtd "[]> in .plist 文件。

4

1 回答 1

1

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

以下是一些选项:

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

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

于 2013-09-06T18:24:10.390 回答