使用 xquery 替换 basex xml 中的节点
replace node in basex xml using xquery
我正在尝试使用以下代码替换 xml 中的一个节点
String xquery_replace="xquery replace node CIDEM/ShopFloor/foo[/CIDEM/ShopFloor/ShopFloorID=1] with "+new_gbXML;
session.execute(xquery_replace);
例如,我想更改第一个 ShopFloor 节点的 foo 节点
xml有以下内容
<CIDEM>
<ShopFloor>
<ShopFloorID>1</ShopFloorID>
<foo bar="2">
<baz>there</baz>
</foo>
</ShopFloor>
<ShopFloor>
<ShopFloorID>2</ShopFloorID>
<foo bar="5">
<baz>there</baz>
</foo>
</ShopFloor>
</CIDEM>
我收到以下错误
“[XUTY0008] 单个元素、文本、属性、注释或 pi 应作为替换目标。”
知道为什么吗?
错误消息本身说明了问题所在。
[XUTY0008] 单个元素、文本、属性、注释或 pi 应作为替换目标。
表示它期望元素或文本或属性...作为要替换的目标。但是您查询中的路径无处可去。阅读我的评论以获得正确的路径。
例如:如果要将 ShopFloorID
的属性 bar
的值替换为值 1
,则路径应为 CIDEM/ShopFloor[ShopFlorrID="1"]/foo/@bar
我正在尝试使用以下代码替换 xml 中的一个节点
String xquery_replace="xquery replace node CIDEM/ShopFloor/foo[/CIDEM/ShopFloor/ShopFloorID=1] with "+new_gbXML;
session.execute(xquery_replace);
例如,我想更改第一个 ShopFloor 节点的 foo 节点
xml有以下内容
<CIDEM>
<ShopFloor>
<ShopFloorID>1</ShopFloorID>
<foo bar="2">
<baz>there</baz>
</foo>
</ShopFloor>
<ShopFloor>
<ShopFloorID>2</ShopFloorID>
<foo bar="5">
<baz>there</baz>
</foo>
</ShopFloor>
</CIDEM>
我收到以下错误 “[XUTY0008] 单个元素、文本、属性、注释或 pi 应作为替换目标。”
知道为什么吗?
错误消息本身说明了问题所在。
[XUTY0008] 单个元素、文本、属性、注释或 pi 应作为替换目标。
表示它期望元素或文本或属性...作为要替换的目标。但是您查询中的路径无处可去。阅读我的评论以获得正确的路径。
例如:如果要将 ShopFloorID
的属性 bar
的值替换为值 1
,则路径应为 CIDEM/ShopFloor[ShopFlorrID="1"]/foo/@bar