Nokogiri::XML::Builder:需要使用字符串"send"作为元素名称



我正在编写一个应用程序来生成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"

最新更新