From an XML perspective, whitespace is data. The following two XML files are not considered to be equivalent:

<foo> <bar /> </foo>

versus

<foo><bar /></foo>

Of course XML is really just a base that other markup formats can layer themselves on top of (RSS, Atom, XHTML, RDF/XML, Docbook, SVG, MathML, etc). Some of those formats may consider whitespace to be insignificant, or significant only in certain places. (For example, in XHTML, whitespace is very significant inside <pre> elements; and the whitespace rules elsewhere are... shall we say "complex".) A general purpose XML processor must consider whitespace to be significant because it has no idea whether the particular flavour of XML you're using considers it important.

So in the examples above, if you remove the <bar> element, a generic XML processor cannot simply remove the whitespace in the first example. It doesn't know whether that whitespace is significant.

And that's why I wrote XML::LibXML::PrettyPrint. It allows you to pass in whitespace-massaging rules to the constructor, and thus reformat XML according to your own set of rules. In your case, configuring it so that <fixed> is a "compact" element, and all others are "block" elements should provide you with the formatting you desire.

use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

In reply to Re: XML::LibXML unbindNode leaves blank lines in the xml file by tobyink
in thread XML::LibXML unbindNode leaves blank lines in the xml file by anadem

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, details, 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, summary, 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.