如何将XML字符串添加到Nokogiri Builder

gen*_*abs 5 ruby xml nokogiri

我有一个现有的Nokogiri构建器和一些来自不同来源的字符串中的xml节点.如何将此字符串添加到构建器中?

str = "<options><cc>true</cc></options>"
xml = Nokogiri::XML::Builder.new do |q|
  q.query do |f|
    f.name "awesome"
    f.filter str
  end
end
Run Code Online (Sandbox Code Playgroud)

这逃脱了类似于:

xml.to_xml
=> "<?xml version=\"1.0\"?>\n<query>\n  <name>awesome</name>\n  <filter>&lt;options&gt;&lt;cc&gt;true&lt;/cc&gt;&lt;/options&gt;</filter>\n</query>\n"
Run Code Online (Sandbox Code Playgroud)

我发现了很多很多类似的东西,包括嵌套构建器和使用<<运算符,但没有什么可以将完整的xml节点树插入构建器块.如何将该字符串转换为真实节点?

mat*_*att 12

你发现使用了什么问题<<?这对我有用:

xml = Nokogiri::XML::Builder.new do |q|
  q.query do |f|
    f.name "awesome"
    f << str
  end
end
Run Code Online (Sandbox Code Playgroud)

并避免使用私有insert方法.