0

在此处输入图像描述
我正在尝试使用 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 文件中它出现在 ü

谢谢你的帮助。

4

1 回答 1

0

在 sax 解析器的限制下,在ErlSom文档中遇到了同样的错误:

它不支持实体,除了预定义的实体(< 等)和字符引用(&#nnn; 和 &#xhhh;)。

于 2012-11-01T17:02:25.377 回答