Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

As noted before, you should be using either twig_roots/twig_print_outside_roots OR print at the end of the processing.

I'll try to explain:

You use twig_roots/twig_print_outside_roots to write filters: anything you are not interested in is output as you parse the document. The elements you are interested in are processed in the handler. But then you have to output them, once processed, at the end of the handler. Then they are output at the proper time. So in your exemple you would have a $body->print at the end of insert_form_tags(), and you would remove the $xml->print at the end of your main code.

OTOH, if your documents are small (ie likely to fit in memory), then there is really no need to use twig_roots/twig_print_outside_roots. You can either load the entire document in memory and then go from here (the body would be $xml->root->first->child( 'body') or $xml->first_elt( 'body')), or use twig_handlers to process elements "in place" during the parsing and then output the entire document in the end (you can also use this mode and then flush the twig at the end of the handler and then again at the end of the parsing if memory is an issue).

Does this make sense? If yes I will probably add this to the FAQ.


In reply to Re: XML::Twig generating invalid XHTML output?? by mirod
in thread XML::Twig generating invalid XHTML output?? by nick

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Domain Nodelet?
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this?Last hourOther CB clients
    Other Users?
    Others lurking in the Monastery: (3)
    As of 2024-09-14 05:24 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      The PerlMonks site front end has:





      Results (21 votes). Check out past polls.

      Notices?
      erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.