Nokogiri :: XML :: Builder:需要使用字符串“send”作为元素名称
问题描述:
我正在编写一个应用程序来生成XML文件作为SipP的输入。经常使用的SIPP 一个标签是“送”Nokogiri :: XML :: Builder:需要使用字符串“send”作为元素名称
的问题是,当我使用引入nokogiri构建XML我
builder = Nokogiri::XML::Builder.new do |xml|
xml.send "Some Content"
end
我得到这个
<?xml version="1.0"?>
<Some Content/>
同样的情况发生时,我这样做:
builder = Nokogiri::XML::Builder.new do |xml|
xml.send(:'send', "Some Content")
end
我不能拼写'发送'的大写字母,因为becau se SipP不会那样理解。
任何想法如何强制nokogiri创建名称为“发送”的元素? 谢谢
答
从docs:
的建设者的工作,采取的method_missing的优势。不幸的是 有些方法是在红宝石中定义的,对于 删除有困难或危险。例如,您可能想要创建名称为“type”,“class”和 “id”的标签。在这种情况下,您可以使用下划线 消除方法调用中的标记名称。
所以检查以下内容:
irb(main):007:0> Nokogiri::XML::Builder.new { |xml| xml.send_ "foo" }.to_xml
=> "<?xml version=\"1.0\"?>\n<send>foo</send>\n"
酷,那做的伎俩。非常感谢! – 2012-04-11 15:24:32
@Christian:请考虑接受这个答案,然后:)你可以通过点击左边的勾号按钮来实现。 – 2012-04-11 15:25:10