我正在编写一个应用程序来生成XML文件作为SipP的输入。SipP经常使用的一个标签是"发送"
问题是,当我使用 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
我不能用大写字母拼写"SEND",因为SipP不会这样理解它。
任何想法如何强制nokogiri创建名为"发送"的元素?谢谢
从文档中:
建造者利用method_missing工作。不幸 Ruby 中定义了一些难以或危险的方法 删除。您可能希望创建名称为"类型"、"类"和 例如"id"。在这种情况下,您可以使用下划线来 消除标记名称与方法调用的歧义。
因此,请检查以下内容:
irb(main):007:0> Nokogiri::XML::Builder.new { |xml| xml.send_ "foo" }.to_xml
=> "<?xml version="1.0"?>n<send>foo</send>n"