2013-02-07 20 views
0

我檢查每個終端節點的文本。 A標籤破壞文本,所以文本不匹配/ PART /。是否有可能以移動標籤的位置:nokogiri移動一個標記,如果它打破父節點文本

<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> 

但是,如果一個標記不破父節點的文本,我會離開它。

我不知道如何判斷標記是否打破父節點的文本。

這是我試過的代碼,沒有條件是否標籤破壞文本。

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> 
+0

我更新了什麼,我都試過了。 – JXU

回答

1

要在前文移動到一個另一邊,你可以這樣做:

a.add_next_sibling(a.previous) if a.previous && a.previous.text? 
+0

太棒了。謝謝。 – JXU

相關問題