所以我有这个html(位于某个XML文件中)
<span style=" font-style: italic;">Nature, </span>
我的期望的结果是使用Ruby,Nokogiri或css-selectors替换标记
<i>Nature, </i>
我尝试了以下内容:
所以我读了Xml并获取了内容
page_references = doc.xpath("/wcm:root/wcm:element[@name='Citations']").inner_text
在这里,我尝试在内容中查找标签并替换它
page_data.push (page_references.to_s.gsub!(/<span style=" font-style: italic;">/,'<i>'))
这不会取代结束标记。
是否有任何人对如何实现所需结果有任何建议?
答案 0 :(得分:0)
require "nokogiri"
doc = Nokogiri::HTML.fragment('<span style=" font-style: italic;">Nature, </span>')
doc.css('span[style=" font-style: italic;"]')
.each{|span| span.replace("<i>#{span.content}</i>")}
doc.to_s # => "<i>Nature, </i>"
答案 1 :(得分:0)
我将如何做:
require 'nokogiri'
doc = Nokogiri::HTML.parse <<-eot
<span style=" font-style: italic;">Nature, </span>
eot
node = doc.at_css('span[style=" font-style: italic;"]')
node.replace("<i> #{node.text} </i>")
puts doc
<强>输出强>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org
/TR/REC-html40/loose.dtd">
<html>
<body><i> Nature, </i></body>
</html>