问题描述
我在 typeswitch
(eXist 5.3) 的输出中遇到了一个额外空格的小问题,我不知道如何解决。鉴于这个小例子:
xquery version "3.1";
declare namespace tei="http://www.tei-c.org/ns/1.0";
declare function local:test($nodes as node()*)
{
for $node in $nodes
return
typeswitch ($node)
case element (test) return
local:test($node/(node()|text()))
case element (tei:seg) return
local:test($node/(node()|text()))
case element (tei:num) return
local:test($node/(node()|text()))
case element (tei:w) return
local:test($node/(node()|text()))
case element (tei:gap) return
"[...]"
case text() return
$node/string()
default return
local:test($node/(node()|text()))
};
let $node :=
<test>
<seg xmlns="http://www.tei-c.org/ns/1.0" n="1" type="unite" xml:id="cat_agr_s1_u1">
<seg type="title" resp="#apocryphe">
<num value="1"> I</num>. <w xml:id="w_cato_agr_2" lemma="quomodo">Quomodo</w>
<w xml:id="w_cato_agr_3" lemma="ager">agrum</w>
<w xml:id="w_cato_agr_4" lemma="emo">emi</w>,<w xml:id="w_cato_agr_5" lemma="pararique">pararique</w>
<w xml:id="w_cato_agr_6" lemma="oporteo">oporteat</w>.
</seg>
<gap reason="editorial" unit="word" quantity="182"> </gap>
</seg>
</test>
return
<p>{local:test($node)}</p>
我得到这个输出:
<p> I . Quomodo agrum emi,pararique oporteat .
[...]</p>
但我正在寻找的是以下内容 - 标点符号与文本之间没有空格分隔:
<p> I. Quomodo agrum emi,pararique oporteat. [...]</p>
请记住,在生产过程中,<p>
中的内容可能会混合在最终的 html 输出中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)