需要在 Builder 函数名称中使用连字符
我正在尝试使用 Builder 为我正在处理的项目构建 xml 文档。 xml 的结构非常严格,所以我无法更改它。 我遇到的问题是这样的。我正在尝试将一个子节点添加到节点“linking-phrase-list”
子项的名称必须是“linking-phrase”
。因此,为了做到这一点,我会调用:
test = Builder.new do |xml|
xml.map {
xml.send(:"linking-phrase-list") {
xml.linking-phrase("label" => "edge1", "id" => "idedge1")
}
}
end
当然,然后 ruby 会将其解释为 (xml.linking)-phrase()
这根本不是我想要的。所以我需要知道是否有某种方法可以说服 ruby 这是一个函数调用而不是两个?那或者告诉 nokogiri 我的意思是当我不使用该功能时。
I'm trying to use Builder to build up a xml document for project I am working on. The xml has a very strict structure so I can't change it.
The problem I am running into is this. I am trying to add a child to a node "linking-phrase-list"
The name of the child must be "linking-phrase"
. So in order to do this I would call:
test = Builder.new do |xml|
xml.map {
xml.send(:"linking-phrase-list") {
xml.linking-phrase("label" => "edge1", "id" => "idedge1")
}
}
end
Of course then ruby interprets this as (xml.linking)-phrase()
which is not at all what I want. So I need to know if there is some way I can convince ruby that is one function call not two? That or tell nokogiri that I mean that when I'm not using that function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为此,请使用构建器提供的
tag!
方法。Use the
tag!
method provided by builder for exactly this purpose.因此,您的问题已经有了答案,请使用
send
方法:输出:
So, you have the answer in your question, use
send
method:output: