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" 
+0

酷,那做的伎俩。非常感谢! – 2012-04-11 15:24:32

+0

@Christian:请考虑接受这个答案,然后:)你可以通过点击左边的勾号按钮来实现。 – 2012-04-11 15:25:10