代码之家  ›  专栏  ›  技术社区  ›  Bikal Lem

C语言中的OFX文件解析器#

  •  4
  • Bikal Lem  · 技术社区  · 16 年前

    我正在寻找C#中的OFX文件解析器库。我在网上搜索过,但似乎没有。有人知道有什么高质量的C#of X文件解析器吗。我需要处理一些OFX格式的银行对账单文件。

    使现代化 我设法找到了一个C#库来解析X解析器。

    这里是链接 ofx sharp .这个代码库似乎是启动我的解决方案的最佳案例。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Jo-Pierre    14 年前

    我试图使用ofx sharp库,但意识到它不起作用,因为文件不是有效的XML。。。它似乎在解析,但有空值。。。

    我在OFXDocumentParser中做了一个更改。cs中,我首先将文件修复为有效的XML,然后让解析器继续。不确定你是否经历过同样的问题?

    方法内部:

    private string SGMLToXML(string file)
    

    我首先添加了几行代码,将file转换为newfile,然后让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库中的新类I。它基本上会扫描所有打开的标签,并验证是否也有一个关闭标签。

    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) 
            { .... }
    
        }
    }
    
        2
  •  0
  •   John Warlow    16 年前

    尝试 http://www.codeproject.com/KB/aspnet/Ofx_to_DataSet.aspx .该代码使用框架3.5并将ofx转换为数据集,这可能有助于您尝试执行的操作。