使用XQuery更新XML节点值

时间:2021-09-15 17:08:15

Im using XQuery in my Project, and to execute XQueries im using SAXON9 from JAVA.

我在我的项目中使用XQuery,并使用来自JAVA的SAXON9执行XQueries。

Here the problem is when im trying to update a node value im getting an exception. I don't have any problems with selecting the data from xml file using XQuery.The only problem im facing is with data modification through xquery.

这里的问题是当我试图更新节点值时我得到一个异常。使用XQuery从xml文件中选择数据没有任何问题。我面临的唯一问题是通过xquery进行数据修改。

This is my query: replace value of node (for $fname in doc("D:/contacts.xml")/Directory/Contacts/Contact[@id='0045d6cd-2c79-4a8d-879b-e8b0b9bfd16e']/LastName return $fname) with 'foo'.

这是我的查询:替换节点的值(对于doc中的$ fname(“D:/contacts.xml”)/目录/联系人/联系人[@ id ='0045d6cd-2c79-4a8d-879b-e8b0b9bfd16e'] / LastName return $ fname)与'foo'。

This is the Exception: javax.xml.xquery.XQException: Unexpected token "replace value" in path expression.

这是异常:javax.xml.xquery.XQException:路径表达式中的意外标记“替换值”。

Can anyone tell me that do i need to any configuration settings in SAXON9 for executing the above query successfully.

任何人都可以告诉我,我需要SAXON9中的任何配置设置才能成功执行上述查询。

I heard that there is a configuration setting for Update in xquery. how can i do that in SAXON.

我听说xquery中有Update的配置设置。我怎么能在SAXON做到这一点。

2 个解决方案

#1


0  

If you're not using the EE version, AFAIK you're out of luck.

如果你没有使用EE版本,AFAIK你运气不好。

For enabling updates from Java, use the XQueryCompiler.setUpdatingEnabled() method.

要从Java启用更新,请使用XQueryCompiler.setUpdatingEnabled()方法。

From the command line use the update:on switch.

从命令行使用update:on开关。

#2


0  

You may be more successful with some other open source, yet complete XQuery Update implementations (BaseX, MonetDB, Sedna).

您可能会更成功地使用其他一些开源,但完整的XQuery Update实现(BaseX,MonetDB,Sedna)。

#1


0  

If you're not using the EE version, AFAIK you're out of luck.

如果你没有使用EE版本,AFAIK你运气不好。

For enabling updates from Java, use the XQueryCompiler.setUpdatingEnabled() method.

要从Java启用更新,请使用XQueryCompiler.setUpdatingEnabled()方法。

From the command line use the update:on switch.

从命令行使用update:on开关。

#2


0  

You may be more successful with some other open source, yet complete XQuery Update implementations (BaseX, MonetDB, Sedna).

您可能会更成功地使用其他一些开源,但完整的XQuery Update实现(BaseX,MonetDB,Sedna)。