gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:39:45 29 4
gpt4 key购买 nike

如何将第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);

并且 .plist 文件中的 DOCTYPE 行将更改为:< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd "[]> 。

最佳答案

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

这里有一些选项:

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

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

关于c# - 如何使用 C# 修改 .plist 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18615749/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com