Я пытался использовать библиотеку ofx sharp, но понял, что она не работает, файл не является допустимым XML ... он, кажется, анализирует, но имеет пустые значения ...
Я внес изменение в файл OFXDocumentParser.cs, где сначала исправляю файл, чтобы он стал действительным XML, а затем разрешаю анализатору продолжить работу. Не уверены, что у вас возникла такая же проблема?
Внутри метода:
private string SGMLToXML(string file)
Сначала я добавил несколько строк, чтобы передать файл в новый файл, а затем разрешил SqmlReader обработать его после следующего кода:
string newfile = ParseHeader(file);
newfile = SGMLToXMLFixer.Fix_SONRS(newfile);
newfile = SGMLToXMLFixer.Fix_STMTTRNRS(newfile);
newfile = SGMLToXMLFixer.Fix_CCSTMTTRNRS(newfile);
//reader.InputStream = new StringReader(ParseHeader(file));
reader.InputStream = new StringReader(newfile);
SGMLToXMLFixer - это новый класс, который я добавил в библиотеку OFXSharp. Он в основном сканирует все открываемые теги и проверяет, есть ли у него закрывающий тег.
namespace OFXSharp
{
public static class SGMLToXMLFixer
{
public static string Fix_SONRS(string original)
{ .... }
public static string Fix_STMTTRNRS(string original)
{ .... }
public static string Fix_CCSTMTTRNRS(string original)
{ .... }
private static string Fix_Transactions(string file, string transactionTag, int lastIdx, out int lastIdx_new)
{ .... }
private static string Fix_Transactions_Recursive(string file_modified, int lastIdx, out int lastIdx_new)
{ .... }
}
}