gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:43 25 4
gpt4 key购买 nike

我正在编写一个应用程序来生成 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 创建一个名为“send”的元素吗?谢谢

最佳答案

来自docs :

The builder works by taking advantage of method_missing. Unfortunately some methods are defined in ruby that are difficult or dangerous to remove. You may want to create tags with the name “type”, “class”, and “id” for example. In that case, you can use an underscore to disambiguate your tag name from the method call.

因此请检查以下内容:

irb(main):007:0> Nokogiri::XML::Builder.new { |xml| xml.send_ "foo" }.to_xml
=> "<?xml version=\"1.0\"?>\n<send>foo</send>\n"

关于ruby - Nokogiri::XML::Builder:需要使用字符串 "send"作为元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com