Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#修改.plist文件?_C#_Ios - Fatal编程技术网

如何使用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

如何将第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”““[]>在.plist文件中。

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

以下是一些选项:

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


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

您是说objective-c吗?为什么要在iOS环境中使用c#?哇,我在网上搜索了XmlDocument.Save()的这个bug,这里有一个解决方法。我用它来解决我的问题!你的第一个选择听起来不错,我会尝试一下,虽然我对这个方法没有进一步的想法!多谢各位~~