如何将第14行更改为更改值,然后将其另存为.plist文件!我正在尝试使用XmlElement然后保存它,但问题是我保存该文件后,doctype行将是,我的意思是“[]”已添加到doctype行的末尾,这将导致iPhone使用时出现问题这个文件。在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”[]>在.plist文件中。
答案 0 :(得分:1)
我认为您的问题与XmlDocument.Save()方法有关。如您所知,XML和plist文件略有不同,但Save()方法在保存时尝试将XML属性应用于plist。
以下是一些选项:
1)使用正则表达式。将文件内容缓冲为byte [],使用正则表达式进行更改,然后将该缓冲区写入.plist。
2)使用XML解析器解析文档,但不要使用内置的Save()方法。这可能仍会导致plist文件中出现不必要的修改,但值得一试。