0

各ターミナルノードのテキストを確認します。Aタグはテキストを分割するため、テキストは/PART/と一致しません。Aタグの位置を移動することは可能ですか?

<P><FONT SIZE=3><B>PA<A NAME="name"></A>RT</B></FONT></P>

<P><FONT SIZE=3><B><A NAME="name"></A>PART</B></FONT></P>

ただし、Aタグが親ノードのテキストを壊さない場合は、そのままにしておきます。

タグが親ノードのテキストを壊しているかどうかを見分ける方法がわかりません。

これは私が試したコードであり、タグがテキストを壊すかどうかを条件とはしていません。

require 'nokogiri'
require 'awesome_print'

html = '<P><FONT SIZE=3><B>PA<A NAME="name"></A>RT II</B></FONT></P>
<P><FONT SIZE=3><B><A NAME="name"></A>PART II</B></FONT></P>'

doc = Nokogiri::HTML(html)

doc.search('a').each do |n|
    text = n.parent.text
    n.parent.replace n
    n.parent.content = text
end

出力

 <p><font size="3">PART II</font></p>
 <p><font size="3">PART II</font></p>
4

1 に答える 1

1

前のテキストをaの反対側に移動するには、次のようにします。

a.add_next_sibling(a.previous) if a.previous && a.previous.text?
于 2013-02-08T04:04:34.617 に答える