http://qs321.pair.com?node_id=11114086


in reply to substitution in textual area of HTML file

A very quick (sub optimal, I have a long commute to begin) example using Mojo::DOM:

#!/usr/bin/perl use strict; use warnings; use feature 'say'; use Mojo::DOM; my $html = '<ul><div class="txt" style="position:absolute; left:84px; +top:73px;"><span id="f1" style="font-size:11px;vertical-align:baselin +e;color:rgba(0,0,0,1);">technology of S2S translation, also known as +Spoken Language Translation (SLT),</span></div><div class="txt" style +="position:absolute; left:44px; top:73px;"><span id="f1" style="font- +size:11px;vertical-align:baseline;color:rgba(0,0,0,1);">is a new appl +ication of AI,</span></div><li>there</li><li>everyone</li></ul> '; my $dom = Mojo::DOM->new( $html ); # find each span tag foreach my $id ( $dom->find('span')->each ){ # if the text contans the string Spoken if ( index($id->text, 'Spoken') > 0){ # replace the node within the DOM my $text = $id->text; $text =~ s/Spoken/Derp!/g; $id->replace( $text ); } } # print the updated DOM say $dom->content;

Output:

<ul><div class="txt" style="position:absolute; left:84px; top:73px;">t +echnology of S2S translation, also known as Derp! Language Translatio +n (SLT),</div><div class="txt" style="position:absolute; left:44px; t +op:73px;"><span id="f1" style="font-size:11px;vertical-align:baseline +;color:rgba(0,0,0,1);">is a new application of AI,</span></div><li>th +ere</li><li>everyone</li></ul>