Nokogiri 鋸 教程翻译 :确保输出的内容符合规范 ,Ensuring Well-formed Markup
如今,到处 者是不符合规范的标记文档。在此,我所说的是,那些没有正确地关闭标记的文档。还有,将 <p> 标记放置 在别的 <p> 标记内部 ,以及,将文本内容放置在 <img> 标记 中。
Nokogiri 会 神奇地 纠正不符合规范的内容,类似于浏览器在渲染之前所做的那样。
badly_formed = <<- EOXML <root> <open>foo <closed>bar</closed> </root> EOXML bad_doc = Nokogiri :: XML badly_formed puts bad_doc # => <?xml version="1.0"?> # <root> # <open>foo # <closed>bar</closed> # </open> # </root>
|
甚至,如果关闭了NOERRORS 和NOWARNINGS 选项(对于XML文档的默认选项)的话,则,Nokogiri会尝试跟踪到错误的具体原因。
puts bad_doc .errors # => Opening and ending tag mismatch: open line 2 and root # Premature end of data in tag root line 1
|
这样,妳就可以 errors.empty? 来确定,文档是否符合规范。
友好待人且修复文档中的错误,是一件好事,但是,有些时候,就是要 严格 要求 。
如果妳对自己的XML严格要求,那么,妳可以将Nokogiri配置为“严格”解析模式,在这种模式下,它会在第一次发现文档中的错误时就抛出一个异常:
begin bad_doc = Nokogiri :: XML(badly_formed) { |config| config.strict } rescue Nokogiri :: XML :: SyntaxError => e puts "caught exception: #{e} " end # => caught exception: Premature end of data in tag root line 1
|
未知美人
未知美人
Your opinionsHxLauncher: Launch Android applications by voice commands