W3C home > Mailing lists > Public > www-ql@w3.org > October to December 2007

RE: specifying text node filtering rules

From: Michael Kay <mhk@mhk.me.uk>
Date: Thu, 13 Dec 2007 17:30:14 -0000
To: "'Vasilis Vagenas'" <vagenas.v@gmail.com>, <www-ql@w3.org>
Message-ID: <00b801c83dad$d2b7da40$6501a8c0@turtle>


XQuery does not offer rule-based processing of this kind. For that, you want
XSLT. In XSLT it's very easy to express this kind of rule:

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

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: www-ql-request@w3.org [mailto:www-ql-request@w3.org] On 
> Behalf Of Vasilis Vagenas
> Sent: 13 December 2007 08:28
> To: www-ql@w3.org
> Subject: specifying text node filtering rules
> 
> 
> Hello! I wonder if the following is possible and cannot find 
> an answer to it. I use XQuery code to read an input XML 
> document "in.xml" and produce an output XML document 
> "out.xml". I wonder if I can specify a rule so that all text 
> nodes copied from "in.xml" to "out.xml" are filtered as 
> follows: every group of consecutive whitespace characters 
> (tabs, new lines, spaces) are replaced by a single space character.
> Given that text nodes are copied by many, diverse ways in my 
> code, I am not looking for a function manipulating strings 
> (that should be called whenever needed); this, apart from 
> being a hardcoded procedure, wouldn't be enough when copying 
> element nodes containing text nodes in their tree structures. 
> Instead, I am looking for a way to specify a general rule for 
> filtering text nodes (e.g. like "declare boundary-space strip;").
> 
> Thanks in advance.
> 
Received on Thursday, 13 December 2007 17:30:39 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:43:44 UTC