我正在使用 Builder::XmlMarkup 为 RESTful API 服务器生成 XML 格式的数据结构。
最近,我发现了一个错误,其中来自 Builder::XmlMarkup 的漂亮打印产生了一个充满空白文本的元素,而不是应有的空元素。
例如,这段代码:
xml.outertag do
xml.list do
# Some code which loops through a list
end
end
正在生产:
<outertag>
<list>
</list>
</outertag>
当内部列表为空列表时,元素必须为空——即<list/> 或<list></list>。然而,实际的 XML 是一个 <list> 标记,其中填充了换行符和其他空格。
那么,我怎样才能完全消除 Builder 的漂亮打印呢?目前,我正在考虑猴子修补 Builder::XmlMarkup 以便初始化忽略:indent参数;虽然我也在考虑使用 after_filter。