RE: specifying text node filtering rules

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