解决方法
我试图使用ofx sharp库,但意识到它不起作用的是文件是无效的XML …它似乎解析但是有空值…
我在OFXDocumentParser.cs中进行了更改,我首先将文件修复为有效的XML,然后让解析器继续.不确定您是否遇到过同样的问题?
方法内部:
private string SGMLToXML(string 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库中的新类.它基本上扫描所有打开的标签,并验证它是否也有结束标签.
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,out int lastIdx_new) { .... } } }