我正在尝试使用 Erlsom 处理 1 GB XML 和 DTD 文件。问题是 parse_sax 抛出异常,因为它不能与 DTD 文件一起使用。基本上我不需要这些信息,所以我的问题是我如何告诉 sax_parser 忽略这个?甚至使用try and catch,当错误被捕获时,跳过文件中的这个位置并从那里继续。
这是一个例外:
** exception throw: {error,"Malformed: unknown reference: uuml"}
in function erlsom_sax_latin1:nowFinalyTranslate/3 (src/erlsom_sax_latin1.erl, line 1051)
in call from erlsom_sax_latin1:translateReferenceNonCharacter/4 (src/erlsom_sax_latin1.erl, line 1024)
in call from erlsom_sax_latin1:parseTextNoIgnore/3 (src/erlsom_sax_latin1.erl, line 922)
in call from erlsom_sax_latin1:parseContent/2 (src/erlsom_sax_latin1.erl, line 898)
in call from erlsom_sax_latin1:parse/2 (src/erlsom_sax_latin1.erl, line 172)
in call from mapReduce:run/0 (/home/alon/workspace/mapReduce/src/mapReduce.erl, line 26)(mapReduce@alon-Vostro-3300)2>
问题在于“uuml”,因为在 XML 文件中它出现在 ü
谢谢你的帮助。