如何使用Nokogiri构建器创建此元素?

时间:2013-07-16 21:27:06

标签: ruby-on-rails ruby xml nokogiri

我的XML中有一个元素,但我不确定如何在Nokogiri :: XML :: Builder中生成它。

<ns0:SearchCondition expressionLanguage='String'expressionType='PartyNumber'>31955854</ns0:SearchCondition>

我试过了:

def test_xml
    builder = Nokogiri::XML::Builder.new do |xml|
    xml.root {
    xml.products {
      xml.widget {
        xml.id_ "10"
        xml.name "Awesome widget"
        xml.SearchCondition('expressionLanguage' => 'String', 'expressionType' => 'PartyNumber')
      }
    }
  }
end
puts builder.to_xml

这会产生以下内容

 <?xml version="1.0"?>
  <root>
   <products>
     <widget>
       <id>10</id>
       <name>Awesome widget</name>
       <SearchCondition expressionLanguage="String" expressionType="PartyNumber"/>
    </widget>
 </products>
</root>

但我不确定如何将值传递给PartyNumber。

1 个答案:

答案 0 :(得分:0)

不确定这是否是您要求的,但您可以使用构建器text方法在另一个内部创建文本元素:

xml.SearchCondition('expressionLanguage' => 'String', 'expressionType' => 'PartyNumber') {
  xml.text "31955854"
}

你没有在你的例子中使用命名空间,但是你没有提到它,所以我想这不是问题。