2014-04-29 46 views
0

我的下一个标签如何更改两个标签之间的一些文字与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" 

回答

0

做如下使用Nokogiri::XML::Node#content=

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

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

感谢,它可以完美运行。 ;) – Mike930494

0

通过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 
相关问题