在ruby on rails中,我使用Nokogiri创建XML文件。现在,我想创建这样的XML行:
<mis:actions param="-900" accuracy="1" cameraIndex="0" payloadType="0" payloadIndex="0">GimbalPitch</mis:actions>
我认为代码必须如下(1)所示:
xml['mis'].actions('param' => "-900", "accuracy" => "1", "cameraIndex" => "0", "payloadType" => "0", "payloadIndex" => "0") 'GimbalPitch'
或(2)
xml['mis'].actions('param' => "-900", "accuracy" => "1", "cameraIndex" => "0", "payloadType" => "0", "payloadIndex" => "0") do
'GimbalPitch'
end
但(1)根本不起作用,(2)看起来是这样的:
<mis:actions param="-900" accuracy="1" cameraIndex="0" payloadType="0" payloadIndex="0">
所以在(2)中,我想念结尾的那个部分.GimbalPitch</mis:actions>
。
谢谢,安德烈亚斯
发布于 2022-04-22 22:01:34
xml['mis'].actions 'text', params: '1' # => <mis:actions params="1">text</mis:actions>
这可能并不明显,但很简单。在构建基本xml结构时
xml.user { # <user>
xml.name 'user name' # <name>user name</name>
} # </user>
以字符串作为参数的xml.name
映射到带有文本的标记。
添加命名空间时不会更改任何内容。一堆参数也让我有点不爽:
# without namespace
xml.actions 'text' # <actions>text</actions>
# with namespace
xml['mis'].actions 'text' # <mis:actions>text</mis:actions>
# add options. (it's just a ruby method)
xml['mis'].actions 'text', params: '1' # <mis:actions params="1">text</mis:actions>
还有一个text
方法,但是它添加了class="text"
xml['mis'].actions(params: 1).text('text') # <mis:actions params="1" class="text">text</mis:actions>
https://stackoverflow.com/questions/71966031
复制相似问题