Wednesday, 14 August 2013

Wrapping Text That Isn't Inside an Anchor Tag With Nokogiri

Wrapping Text That Isn't Inside an Anchor Tag With Nokogiri

I have some HTML:
<p>Lorem ipsum example sit amet, consectetur adipiscing elit. Vivamus
consequat mi vitae lacus fringilla laoreet. <a href="#">example</a>Cum
sociis natoque penatibus et magnis dis parturient montes, nascetur
ridiculus mus. Sed porttitor</p>
<p>Phasellus <a href="#">gravida tempor example</a> posuere. Fusce vitae
urna eu example consectetur suscipit id sit amet magna</p>
I need to wrap a span around any instances of the text 'example' that
occurs in the HTML unless it is inside an anchor tag. So that the above
would become:
<p>Lorem ipsum <span class="something">example</span> sit amet,
consectetur adipiscing elit. Vivamus consequat mi vitae lacus fringilla
laoreet. <a href="#">example</a>Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Sed porttitor</p>
<p>Phasellus <a href="#">gravida tempor example</a> posuere. Fusce vitae
urna eu <span class="something">example</span> consectetur suscipit id sit
amet magna</p>
I can wrap tags around the text content of another tag using:
doc.search('div.some-class text()').wrap('<span class="something"></span>')
But how do I wrap tags around text within that content?

No comments:

Post a Comment