Ruby:在Nokogiri HTML构建器中包含原始HTML

时间:2018-07-14 15:09:58

标签: html ruby xml nokogiri

我正在编写将fixed XML schema转换为HTML的代码。我正在尝试使用Nokogiri,它适用于大多数标签,例如:

# doc is the Nokogiri html builder, text_inline is a TextInlineContent node
def consume_inline_content?(doc, text_inline)
  text = text_inline.text
  case text_inline.name
  when 'text'
    doc.text text
  when 'emphasized'
    doc.em {
      doc.text text
    }
  # ... and so on ...
  end
end

问题是,此架构还包括一个rawHTML文本节点。这是我的一些意见:

<rawHTML><![CDATA[<h2>]]></rawHTML>
Stuff
<rawHTML><![CDATA[</h2>]]></rawHTML>

,理想情况下应呈现为<h2>Stuff</h2>。但是当我尝试“显而易见”的事情时:

...
when 'rawHTML'
  doc << text
...

Nokogiri生产<h2></h2>Stuff。在我有机会插入其内容或结束标签之前,它似乎正在“修复”不平衡的打开标签。

我意识到我在问一个可能会产生格式错误的html的功能,也许构建器不希望这样做。有解决这种情况的正确方法吗?

0 个答案:

没有答案