如何使用c#修改.plist文件?
如何将第14行更改为已更改的值,然后将其另存为.plist文件!我试图使用XmlElement然后保存它,但问题是在保存该文件后,doctype行将是,我的意思是在doctype行的末尾添加了“[]”,这将导致iPhone使用此文件时出现问题。在c#中,如何正确编辑它 我使用以下代码修改.plist文件:如何使用c#修改.plist文件?,c#,ios,C#,Ios,如何将第14行更改为已更改的值,然后将其另存为.plist文件!我试图使用XmlElement然后保存它,但问题是在保存该文件后,doctype行将是,我的意思是在doctype行的末尾添加了“[]”,这将导致iPhone使用此文件时出现问题。在c#中,如何正确编辑它 我使用以下代码修改.plist文件: XmlDocument doc = new XmlDocument(); string plistPath = "app.plist"; doc.Load(p
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”““[]>在.plist文件中。我认为您的问题与XmlDocument.Save()方法有关。如您所知,XML和plist文件略有不同,但是Save()方法试图在保存时将XML属性应用于plist 以下是一些选项: 1) 使用正则表达式。将文件内容缓冲到一个字节[],使用正则表达式进行更改,然后将该缓冲写入.plist
2) 使用XML解析器解析文档,但不要使用内置的Save()方法。这可能仍然会导致对plist文件进行不必要的修改,但值得一试。您是说objective-c吗?为什么要在iOS环境中使用c#?哇,我在网上搜索了XmlDocument.Save()的这个bug,这里有一个解决方法。我用它来解决我的问题!你的第一个选择听起来不错,我会尝试一下,虽然我对这个方法没有进一步的想法!多谢各位~~