Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

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
[LanX]: not sure what you guys are taking about, but a DOM manipulation in JS shouldn't be difficult
[Corion]: Discipulus: Yeah, that's what I would try (but so far, I can't even change the colors manually in the SVG, which is why I gave up ;) )
Discipulus bad sign..
[Discipulus]: italian doc says to modify somehow the initial SVG before using it with D3.js
[Discipulus]: LanX the fact is that my js ability is even poorer than my Perl one..
[LanX]: oh its negative? ;P
[Discipulus]: my warmest comprehension karlgoethebier ;=(

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (13)
As of 2017-03-23 09:48 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (285 votes). Check out past polls.