From a69dfd440badf7d2d39c0f11d01157dffb62bfca Mon Sep 17 00:00:00 2001
From: uwe <arokis.u@gmail.com>
Date: Thu, 8 Feb 2018 18:54:02 +0100
Subject: [PATCH] better xpath to identify whitespace text() and intended
 single-space-between-two-nodes

---
 modules/intermediate_format/whitespace-handling.xqm | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/modules/intermediate_format/whitespace-handling.xqm b/modules/intermediate_format/whitespace-handling.xqm
index 030af17..dd7bee3 100644
--- a/modules/intermediate_format/whitespace-handling.xqm
+++ b/modules/intermediate_format/whitespace-handling.xqm
@@ -30,15 +30,13 @@ declare function whitespace:text
     ( $text as text()*, $escape-char as xs:string? ) as text()* {
     
     let $normalized := normalize-space($text)
-    let $single-whitespace-between-nodes := $text
-                                            [ self::node() = ' ']
-(:                                            [preceding-sibling::node()[not(self::node() = text())]]:)
-(:                                            [following-sibling::node()[not(self::node() = text())]]:)
+    let $whitespace-node := $text[matches(., "[\s\n\r\t]") and normalize-space(.) = ""]
+    let $single-whitespace-between-nodes := $text = ' '
     return 
-        if ( $normalized != "" or $single-whitespace-between-nodes) then (
+        if ( not($whitespace-node) or $single-whitespace-between-nodes) then (
             
             if ($escape-char) then (
-                whitespace:escape-text($text, $escape-char) 
+                whitespace:escape-text($text, "#") 
             ) else ( whitespace:escape-text($text, " ") )
             
         ) 
-- 
GitLab