Nokogiri XML解析失败时或者
出现在文本中

时间:2014-06-04 17:18:52

标签: ruby xml jruby nokogiri

当Nokogiri出现在文本中时(即在XML节点之间),它似乎无法处理制表符和回车符的主题转义序列。当我禁用RECOVER解析选项时,抛出的错误如下:

Nokogiri::XML::SyntaxError: Content is not allowed in prolog.
nokogiri/XmlDocument.java:344:in `read_memory'
/Users/pivotal/.gem/jruby/1.9.3/gems/nokogiri-1.6.2.1-java/lib/nokogiri/xml/document.rb:55:in `parse'
/Users/pivotal/.gem/jruby/1.9.3/gems/nokogiri-1.6.2.1-java/lib/nokogiri/xml.rb:33:in `XML'

有关如何避免此问题的任何想法,而不会在转移到Nokogiri之前过滤掉转义序列?

更新

其中一个实例的本地示例是:

<KeyIssues> &#x09;</KeyIssues>

并且要清楚,删除序列可以消除问题。此外,虽然我不确定它是否相关,但文件编码为UTF-16 Little Endian,我将适当的编码信息传递给Nokogiri。最后,我使用:

jruby 1.7.11 (1.9.3p392) 2014-02-24 86339bb on Java HotSpot(TM) 64-Bit Server VM 1.7.0_55-b13 [darwin-x86_64]

和Nokogiri 1.6.2.1

0 个答案:

没有答案