Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

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:

Hello,

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">
stuff
</VARIF>

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

Comment on Recognized tags by HTML::Element
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?
Username:
Password:

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
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2015-07-03 15:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (53 votes), past polls