我有下一个标签
<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