我正在编写将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的功能,也许构建器不希望这样做。有解决这种情况的正确方法吗?