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 に答える