Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Recognized tags by HTML::Element

by jjanmaat (Initiate)
on Nov 23, 2013 at 18:16 UTC ( #1064063=perlquestion: print w/replies, xml ) Need Help??
jjanmaat has asked for the wisdom of the Perl Monks concerning the following question:


I'm writing a script to process an HTML file and recognize a couple of new tags. The tags I want to include are similar to those in HTML::Template, in the way they work.

I was trying to get HTML::Template to do the work. However, I am doing some other processing using an HTML tree, and HTML::Element doesn't seem to handle the HTML::Template tags properly when rebuilding the HTML. This means I can't just dump the sub-tree I want to work on out as HTML and run it through as a template.

The issue is replacing things that are a block. An example I am trying to build is

<VARIF name="foo" value="test">

to do the obvious. HTML::Element doesn't recognize my new tag as a valid tag, in terms of building a tree below it. However, it does see it as a tag, and when the HTML method is called, it generates a <VARIF ..> </VARIF> pair, gets rid of the </VARIF> that was there originally, and outputs the stuff after the new </VARIF>.

Any suggestions for how to get my little bit processed properly?

Thanks (and my apologies for any lack of clarity).

Replies are listed 'Best First'.
Re: Recognized tags by HTML::Element
by Anonymous Monk on Nov 24, 2013 at 01:20 UTC

    Any suggestions for how to get my little bit processed properly?

    Nope, ATM its like a word puzzle and my word processor isn't firing on all cylinders :) How do I post a question effectively?

    #!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd pp /; use HTML::Element; use HTML::TreeBuilder; my $v = HTML::Element->new( qw/ VARIF name foo value test / ); $v->push_content("stuff"); print $v->as_HTML,"\n\n"; my $t = HTML::TreeBuilder->new(qw{ ignore_unknown 0 })->parse_content( +q{ <body> <VARIF name="foo" value="test"> stuff </VARIF> }); print $t->as_HTML,"\n\n"; __END__ <varif name="foo" value="test">stuff</varif> <html><head></head><body><varif name="foo" value="test"> stuff </varif +></body></html>

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1064063]
Approved by ww
Front-paged by Old_Gray_Bear
[usemodperl]: greetings
[usemodperl]: question
[usemodperl]: perldoc -v 'ARGV' works but perldoc -v "STDIN' does not, but they are both filehandles. is there a perldoc for STDIN?
[usemodperl]: (typo not withstanding :)
usemodperl thinks about loose coupling...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2018-06-19 19:15 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (114 votes). Check out past polls.