ruby - Nokogiri XML 构建器向我的 XML 添加不需要的 "class=' 调用'"?

标签 ruby xml nokogiri

我必须向 API 发送测试请求才能进行验证:

def fake_xml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.TrackRequest.('USERID' => USPS_API["user_id"]) {
      xml.TrackID('ID' => 'EJ958083578US')
    }
  end
  puts builder.to_xml
  return builder.to_xml
end

但是,这会产生:

<TrackRequest class="call" USERID="xxxx">
  <TrackID ID="EJ958083578US"/>
</TrackRequest>

我不想要 class="call" 因为它会搞乱请求并导致它返回失败的响应。如何删除它或阻止 Nokogiri 自动添加该类?

最佳答案

尝试如下:

require 'nokogiri'

builder = Nokogiri::XML::Builder.new do |xml|
    xml.TrackRequest('USERID' => '12') {
      xml.TrackID('ID' => 'EJ958083578US')
    }
end

puts builder.to_xml
# >> <?xml version="1.0"?>
# >> <TrackRequest USERID="12">
# >>   <TrackID ID="EJ958083578US"/>
# >> </TrackRequest>

此处不应有 . xml.TrackRequest.('USERID' => USPS_API["user_id"])。只是简单的 xml.TrackRequest('USERID' => USPS_API["user_id"])

关于ruby - Nokogiri XML 构建器向我的 XML 添加不需要的 "class=' 调用'"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21240842/

相关文章:

ruby-on-rails - rails rspec 测试模型上的更新属性

ruby - ruby 中的并行分配对于两个等效代码片段的工作方式不同

performance - 将 XML 文档转换为二进制文件是什么意思?

ruby-on-rails -/usr/local/lib/libz.1.dylib,文件是为 i386 构建的,它不是被链接的体系结构 (x86_64)

html - 如何使用 Nokogiri 用 <p> 标签包装 HTML 无标签文本?

ruby-on-rails - 我应该将我的数据库查询测试放在 Rails 中的什么位置?

ruby - 使用 gem Curb (curl) 下载文件

java - 使用Java进行XML解析: <element name ="doctype">

php - 基本的 simpleXML 工作示例?

ruby - 使用 nokogiri 或 mechanize 解析使用 JavaScript 呈现的电子邮件