ruby on rails-如何使用Nokogiri更改两个标签之间的一些文本



我有下一个标签

    <svg><text id="text1" color="red">Hello!</text>
         <text id="text2" color="red">Another text </text></svg>

我怎么能用Nokogiri来改变标签之间的内容,所以我得到了

 <svg>   <text id="text1" color="red">Goodbye</text>
        <text id="text2" color="red">Another text </text></svg>

有这样的方法吗??

document.at_xpath('//svg/text[@id="text1"]').text="Goodbye"

使用Nokogiri::XML::Node#content=:执行以下操作

将节点的内容设置为包含字符串的Text节点。字符串得到XML转义,而不是解释为标记。

document.at_xpath('//svg/text[@id="text1"]').content = "Goodbye"

按id选择将是另一种解决方案,对于HTML:来说可能更优雅

require 'nokogiri'
html = %q{ 
  <html>
   <body>
    <svg><text id="text1" color="red">Hello!</text>
     <text id="text2" color="red">Another text </text></svg>   </body>
 </html>
}
doc = Nokogiri::XML(html)
hello = doc.at_css('#text1')
hello.content = "Goodbye"
puts doc

相关内容

  • 没有找到相关文章

最新更新