[DatFile] Make the process smoother for parsing

This commit is contained in:
Matt Nadareski
2016-09-30 11:50:02 -07:00
parent 810bbf501a
commit 4e956754c2

View File

@@ -1221,6 +1221,7 @@ namespace SabreTools.Helper
case OutputFormat.OfflineList:
case OutputFormat.SabreDat:
case OutputFormat.SoftwareList:
case OutputFormat.Xml:
ParseXML(filename, sysid, srcid, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, itemStatus, trim, single, root, logger, keep, clean, softlist);
break;
case OutputFormat.RedumpMD5:
@@ -1235,9 +1236,6 @@ namespace SabreTools.Helper
case OutputFormat.RomCenter:
ParseRC(filename, sysid, srcid, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, itemStatus, trim, single, root, logger, clean);
break;
case OutputFormat.Xml:
ParseXMLString(filename, sysid, srcid, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, itemStatus, trim, single, root, logger, keep, clean, softlist);
break;
default:
return;
}
@@ -2241,6 +2239,19 @@ namespace SabreTools.Helper
return;
}
// Check if the input has invalid characters. If it does, then close the reader and use the string version
try
{
XElement x = XElement.Load(xtr, LoadOptions.None);
x = null;
}
catch
{
xtr.Dispose();
ParseXMLString(filename, sysid, srcid, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, itemStatus, trim, single, root, logger, keep, clean, softlist);
return;
}
// Otherwise, read the file to the end
try
{