Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

tree-oriented use of HTML::FillInForm

by metaperl (Curate)
on Mar 13, 2009 at 17:26 UTC ( #750476=snippet: print w/ replies, xml ) Need Help??

Description: I repeat my bug report:
Not all templating systems are string-oriented. HTML::Seamstress is not. It works with HTML::Element instances. As such, it would be nice if the result of filling in the form could be returned as a tree for further processing by HTML::Element methods. As it stands, I am forced to parse the results of HTML::FillInForm back into a tree (even though it was a tree before HTML::FillInForm stringified it).
Now, just consider how much is being done.
  1. seamstress has an HTML tree that it wants the form filled in on
  2. seamstress converts this to a string
  3. FillInForm parses the string into an HTML tree and then fills in the form
  4. FillInForm converts the HTML tree to a string
  5. seamstress re-parses the HTML for additional processing
If FillInForm could receive and return trees, my apps would be much faster.

For the time being, I at least need to turn this multiline process into a single function call, so here it is.

Of course,

# https://rt.cpan.org/Ticket/Display.html?id=44105
sub tree_fillinform {

    my ($tree, $hashref)=@_;
    
    my $html = $tree->as_HTML;
    my $new_html = HTML::FillInForm->fill(\$html, $hashref);
    HTML::TreeBuilder->new_from_content($new_html);

}
Comment on tree-oriented use of HTML::FillInForm
Download Code

Back to Snippets Section

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://750476]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2015-07-03 21:44 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 (56 votes), past polls