如何在 XQuery (exist-db) 中使用更新动态 search/replace 文本

How to dynamically search/replace text with update in XQuery (exist-db)

我的意图是以某种方式自动清理源文件。如何在 XQuery 中做到这一点? (我对在内存中重建文档并将其作为新文档存储不感兴趣。)在直接处理简短元素的情况下,做类似的事情很容易,但是,我不知道该怎么做如果可能,动态地为所有文本节点。

我希望这样的东西可以工作:

update replace $div[contains(., 'chapter')] with replace(., 'chapter', 'Chapter')

这会引发 err:XPDY0002 Undefined context sequence for 'self::node()' [source: String]

显然,在替换函数中使用 . 处理上下文时存在问题。但也许我一般不理解 update 的东西。我只受到this article.

底部的启发

with 右边的表达式独立于左边的表达式。所以两部分都需要明确的 node/context :

update replace $div[contains(., 'chapter')] with replace($div, 'chapter', 'Chapter')