设置标签属性,并使用nokogiri builder(ruby)向标签添加纯文本内
发布时间:2020-12-16 21:41:59 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Nokogiri构建 XML,并在标签中包含属性和纯文本.所以我试图得到这个: ?xml version="1.0"?Transaction requestName="OrderRequest" Option b="hive"hello/Option/Transaction 使用构建器我有这个: builder = Nokogiri::XML::Builder.new { |x
我正在尝试使用Nokogiri构建
XML,并在标签中包含属性和纯文本.所以我试图得到这个:
<?xml version="1.0"?> <Transaction requestName="OrderRequest"> <Option b="hive">hello</Option> </Transaction> 使用构建器我有这个: builder = Nokogiri::XML::Builder.new { |xml| xml.Transaction("requestName" => "OrderRequest") do xml.Option("b" => "hive").text("hello") end } 这样做: <Transaction requestName="OrderRequest"> <Option b="hive" class="text">hello</Option> </Transaction> 所以它产生 我不知道该怎么做如果我尝试通过将所需的XML提供给一个Nokogiri对象,那么它将使用< Option>标签设置为children = [#< Nokogiri :: XML :: Text:0x80b9e3dc“hello”>],我不知道如何从构建器设置. 如果有人在Nokogiri文档中提到了这一点,我将不胜感激. 解决方法
有两种方法可以使用.
使用.text 您可以调用.text方法来设置节点的文本: builder = Nokogiri::XML::Builder.new { |xml| xml.Transaction("requestName" => "OrderRequest") do xml.Option("b" => "hive"){ xml.text("hello") } end } 产生: <?xml version="1.0"?> <Transaction requestName="OrderRequest"> <Option b="hive">hello</Option> </Transaction> 解决方案使用文本参数 或者,您可以将文本作为参数传递.该文本应该在属性值之前传递.换句话说,标签以下列形式添加: tag "text",:attribute => 'value' 在这种情况下,所需的构建器将是: builder = Nokogiri::XML::Builder.new { |xml| xml.Transaction("requestName" => "OrderRequest") do xml.Option("hello","b" => "hive") end } 生成相同的XML: <?xml version="1.0"?> <Transaction requestName="OrderRequest"> <Option b="hive">hello</Option> </Transaction> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读