Hi,
i want to parse a large xml file (50kbyte) so I cannot load it into memory completely before parsing.
Now I modified your sample code from the beginners guide (p.132-133) but I always get a “System.Xml.XmlException” when trying to read the file at the xmlr.Read();.
My code:
System.IO.FileStream xmfile = File.Open(filename, FileMode.Open);
XmlReader xmlr = XmlReader.Create(xmfile);
try
{
while (!xmlr.EOF)
{
xmlr.Read();
switch (xmlr.NodeType)
{
case XmlNodeType.Element:
Debug.Print("element: " + xmlr.Name);
break;
case XmlNodeType.Text:
Debug.Print("text: " + xmlr.Value);
break;
case XmlNodeType.XmlDeclaration:
Debug.Print("decl: " + xmlr.Name + ", " + xmlr.Value);
break;
case XmlNodeType.Comment:
Debug.Print("comment " + xmlr.Value);
break;
case XmlNodeType.EndElement:
Debug.Print("end element");
break;
case XmlNodeType.Whitespace:
Debug.Print("white space");
break;
case XmlNodeType.None:
Debug.Print("none");
break;
default:
Debug.Print(xmlr.NodeType.ToString());
break;
}
}
}
catch (Exception exe)
{
string s = exe.Message;
return false;
}
The file exists on the SD card, the filesystem is mounted and the FileInfo shows that it can access the file.
What am I doing wrong? Or is there another way to stream an XML file from SD card without having to load all text into memory?
Sincerely
Holger