C# 尝试将xml导入android时发生OutOfMemoryException
当我尝试使用我们制作的应用程序将xml文件导入android时,我的xml文件大小为230 mb,长度为2.3亿,但在尝试将C# 尝试将xml导入android时发生OutOfMemoryException,c#,android,xml,xamarin,C#,Android,Xml,Xamarin,当我尝试使用我们制作的应用程序将xml文件导入android时,我的xml文件大小为230 mb,长度为2.3亿,但在尝试将readtoendstring导入变量时,我收到一个错误: System.outofmemoryexception:System.text.stringbuilder.tostring()处(包装器管理为本机)System.string.fastallocatestring(int)处内存不足 以下是代码 var documentsPath = Android.OS.Env
readtoend
string导入变量时,我收到一个错误:
System.outofmemoryexception:System.text.stringbuilder.tostring()处(包装器管理为本机)System.string.fastallocatestring(int)处内存不足
以下是代码
var documentsPath = Android.OS.Environment.ExternalStorageDirectory.ToString();
var dirName = System.IO.Path.Combine(documentsPath.ToString(), "Stock");
var filePath = System.IO.Path.Combine(dirName, "Data.xml");
TextReader tr = new StreamReader(filePath);
string result = tr.ReadToEnd();
tr.Close();
var st = new XStreamingElement(filePath);
return result;
任何人都可以提供帮助,请提前感谢。尝试使用XMLTextReader类,如下所示:
XmlTextReader myTextReader = new XmlTextReader(filename);
myTextReader.WhitespaceHandling = WhitespaceHandling.None;
while (myTextReader.Read())
{
if (myTextReader.NodeType == XmlNodeType.Element &&
myTextReader.LocalName == "Reward" &&
myTextReader.IsStartElement() == true)
{
ProcessRewardNode(myTextReader);
myTextReader.Skip();
}
}
以下是ProcessRewardNode的方法实现:
private void ProcessRewardNode(XmlTextReader RewardReader)
{
XmlDocument RewardXmlDoc = new XmlDocument();
RewardXmlDoc.LoadXml(RewardReader.ReadOuterXml());
// we can use xpath as below
myID = RewardXmlDoc.SelectSingleNode("Reward/myID").InnerText;
}
有关更多信息,请访问的可能副本,查看和。