我遇到类似What's the cleanest way to ignore empty nodes with Nokogiri::XML::Builder的问题,但我的XML文档是使用构建器gem由.builder模板文件生成的。
我正在使用builder gem(和tilt)生成XML文档,我希望摆脱空节点。
答案suggesting只是迭代每个属性并决定是否序列化每个属性并不适合我的应用程序,因为构建XML文档涉及很多逻辑。
回答suggesting使用Nokogiri::XML::Node#traverse
看起来并不坏,但我怀疑构建器gem不支持这种方法。构建器says
生成XML树的
Builder::XmlTree
类(即类DOM) 结构也有计划,但尚未实施。此外,事件 builder目前在功能上落后于标记构建器。
(我不确定引用的部分是否等同于Nokogiri::XML::Node#traverse
,但它至少表明某些功能在Builder中不可用)
此外,搜索某种remove方法在git存储库中没有匹配。
截至2017年,建筑师宝石基本上已被废弃。主分支最后在2013年6月提交,从那时起只有handful of commits in forks。 Tilt提到的维护仅涉及维持倾斜和构建器之间的集成。
除了构建器gem之外,是否有任何支持.builder
格式的gem?
除了向if title
文件中添加大量if feed
或.builder
条件,或者在创建XML之后,我还有其他选择吗?通过不相关的XML提供XML解析器?