- 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>
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