Re: [xml] Remove whitespaces from text nodes

On 02/14/2012 03:13 PM, Michael Ludwig wrote:
spam spam spam spam free fr schrieb am 14.02.2012 um 10:59 (+0100):
Is there a function which do this work?

Don't know the C API, but in XSLT there's the function normalize-space()
and it does just what you want, so you might want to take a look at the
source of LibXSLT. Or use XSLT directly.
I spent a bit of time looking for the C call today and wasn't able to
find it. In fact, I doubt there is one, since all space is treated by
libxml2 as significant (see [1] and [2]).

<xsl:stylesheet version="1.0"

      <xsl:template match="text()" priority="2">
              <xsl:copy-of select="normalize-space()"/>

      <xsl:template match="@*|node()">
                      <xsl:apply-templates select="@*|node()"/>


The XSLT solution suggested is the best way in lieu of actually
normalizing the space in C - the choice is yours.

As a side-note, I thought one could get, at least partially, to
eliminating extra white-space using the XML_PARSE_NOBLANKS (as suggested
by Daniel in [1]), but the functionality behind the option seems to have
been modified. I recall being able to remove empty nodes (<node/>) from
the document being parsed using that option -- that is no longer the case.

All the best,


1 -
2 -  (see point 3)

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]