如何在XQuery中使用update动态搜索/替换文本(exists-db)

时间:2016-04-26 14:34:16

标签: 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底部的启发。

1 个答案:

答案 0 :(得分:2)

with右侧的表达式与左侧的表达式无关。因此,两个部分都需要一个明确的节点/上下文:

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