我发现这篇关于替换给定元素的值的现有帖子,但我需要进一步满足我的要求,因为我需要用另一个字符替换第一个字符。这是我找到的帖子:change value of element by xquery
源 XML:
<?xml version="1.0" encoding="UTF-8"?>
<category>
<catid>1</catid>
<cattext>sport</cattext>
</category>
使用这个 Xquery:
declare namespace local = "http://example.org";
declare function local:copy-replace($element as element()) {
if ($element/self::cattext)
then <cattext>art</cattext>
else element {node-name($element)}
{$element/@*,
for $child in $element/node()
return if ($child instance of element())
then local:copy-replace($child)
else $child
}
};
local:copy-replace(/*)
给出这个输出:
<?xml version="1.0" encoding="UTF-8"?>
<category>
<catid>1</catid>
<cattext>art</cattext>
</category>
我对 Xquery 的了解才刚刚开始增长。如何将上面的 Xquery 更改为仅更改第一个字符,以便获得以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<category>
<catid>1</catid>
<cattext>9port</cattext>
</category>