在所有标签中查找最终替换内容

时间:2018-10-10 15:29:46

标签: ruby nokogiri

我想找到并替换XML文件中的所有节点。我尝试过:

def modify_xml_content(request_body, node, content)
    doc = Nokogiri::XML(request_body)
    node = doc.search(node).first
    node.content = content
    puts "Modifying #{node}"
    doc.to_xml
  rescue
    request_body
  end

示例XML

<billing_address>
    <first_name>Max</first_name>
    <last_name>Mustermann</last_name>
    <address1>Muster Str. 12</address1>
    <zip_code>10178</zip_code>
    <city>New York</city>
    <state>WA</state>
    <country>US</country>
  </billing_address>
  <shipping_address>
    <first_name>Max</first_name>
    <last_name>Mustermann</last_name>
    <address1>Muster Str. 12</address1>
    <zip_code>10178</zip_code>
    <city>New York</city>
    <state>WA</state>
    <country>US</country>
  </shipping_address>

如何查找和替换标签中的所有内容,例如,不仅是第一个找到的匹配标签?

1 个答案:

答案 0 :(得分:0)

执行each而不是first

doc.search(node).each do |n|
  n.content = content
end