1

所以我有这个 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>'))

这不会替换结束标签。

有没有人对我如何达到我想要的结果有任何建议?

4

2 回答 2

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>"
于 2013-11-11T14:58:13.157 回答
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>
于 2013-11-11T14:58:27.700 回答