本文介绍了使用 Nokogiri 构建空白 XML 标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 Nokogiri 构建一个 XML 文档.到目前为止,一切都非常标准;我的大部分代码看起来像:
I'm trying to build up an XML document using Nokogiri. Everything is pretty standard so far; most of my code just looks something like:
builder = Nokogiri::XML::Builder.new do |xml|
...
xml.Tag1(object.attribute_1)
xml.Tag2(object.attribute_2)
xml.Tag3(object.attribute_3)
xml.Tag4(nil)
end
builder.to_xml
然而,这会产生一个类似 ,这是我的最终用户所拥有的指定输出需要.
However, that results in a tag like <Tag4/>
instead of <Tag4></Tag4>
, which is what my end user has specified that the output needs to be.
我如何告诉 Nokogiri 在 nil 值周围放置完整的标签?
How do I tell Nokogiri to put full tags around a nil value?
推荐答案
SaveOptions::NO_EMPTY_TAGS 将得到你想要的.
SaveOptions::NO_EMPTY_TAGS will get you what you want.
require 'nokogiri'
builder = Nokogiri::XML::Builder.new do |xml|
xml.blah(nil)
end
puts 'broken:'
puts builder.to_xml
puts 'fixed:'
puts builder.to_xml(save_with: Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS)
输出:
(511)-> ruby derp.rb
broken:
<?xml version="1.0"?>
<blah/>
fixed:
<?xml version="1.0"?>
<blah></blah>
这篇关于使用 Nokogiri 构建空白 XML 标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!