Парсер файлов OFX в C # - PullRequest
4 голосов
/ 28 июля 2010

Я ищу библиотеку анализатора файлов OFX на C #. У меня есть поиск в Интернете, но, кажется, нет. Кто-нибудь знает о каком-либо парсере хорошего качества C # OFX. Мне нужно обработать некоторые файлы банковских выписок в формате OFX.

Обновление Мне удалось найти библиотеку C # для разбора синтаксического анализатора OFX.

Вот ссылка ofx sharp . Эта кодовая база, кажется, лучший вариант для запуска моего решения.

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Я пытался использовать библиотеку 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) 
        { .... }

    }
}
0 голосов
/ 28 июля 2010

Попробуйте http://www.codeproject.com/KB/aspnet/Ofx_to_DataSet.aspx. Код использует Framework 3.5 и преобразует ofx в набор данных, это может помочь в том, что вы пытаетесь сделать.

...