1

親タグのコンテンツと比較してタグの位置を取得できるかどうか (そしてもちろんその方法も) を知りたかったのです。例えば:

Case 1: <a>Hello<br/></a>

Case 2: <a><br/>Hello</a>

ここで、br が「br」タグの前後に配置されているかどうかを知りたい

編集:私の本当の目的は、実際に変換することです:

<a>Hello</a>
<a>World!<br/></a>
<a><br/>I</a>
<a>love</a>
<a>Rails.</a>

の中へ

Hello World!
I love Rails.

しかし、私の現在のコードは次のように変換しています:

Hello World!
I
love Rails

各「a」タグを探しており、br が存在する場合は新しい行を作成するためです。

4

1 に答える 1

1

childrenget時に使用してみてくださいa。このようなもの:

str = '<doc><a>Hello</a>
<a>World!<br/></a>
<a><br/>I</a>
<a>love</a>
<a>Rails.</a></doc>'

doc = Nokogiri::XML.parse(str)
out = ""
doc.css('doc a').each do |block|
  block.children.each do |node|
    if node.element?
      out += "<a></" + node.name + "></a>\n"
    else
      out += "<a>" + node.text + "</a>\n"
    end
  end
end
puts out

出力は次のとおりです。

<a>Hello</a>
<a>World!</a>
<a></br></a>
<a></br></a>
<a>I</a>
<a>love</a>
<a>Rails.</a>

ただし、この場合、2つのbrに対処する必要があります...

于 2013-06-19T13:48:14.983 に答える