XQuery:插入节点

XQuery:插入节点,xquery,Xquery,我正在使用XQuery读取一个XML文件,希望插入几个节点/元素并生成一个新的XML文件。我怎样才能做到这一点 我尝试过使用replace()函数,但是,当我调用doc()加载文档时,似乎所有的XML标记都被剥离了。因此,如果要删除我的XML标记,调用replace()就没有任何好处 有什么帮助吗?还有其他技术可以使用吗?replace()是一个字符串操作,因此在替换之前XML将转换为字符串 要创建原始文件的修改副本,可以修改标识转换,该转换递归复制原始文件以在需要时插入新节点-请参阅中的文章

我正在使用XQuery读取一个XML文件,希望插入几个节点/元素并生成一个新的XML文件。我怎样才能做到这一点

我尝试过使用replace()函数,但是,当我调用doc()加载文档时,似乎所有的XML标记都被剥离了。因此,如果要删除我的XML标记,调用replace()就没有任何好处

有什么帮助吗?还有其他技术可以使用吗?

replace()是一个字符串操作,因此在替换之前XML将转换为字符串

要创建原始文件的修改副本,可以修改标识转换,该转换递归复制原始文件以在需要时插入新节点-请参阅中的文章


或者,如果文件位于XML数据库(如eXist)中,则可以使用更新操作在原位插入元素。

存在允许更新的XQuery语言扩展——XQuery更新工具,以允许修改文档

插入节点如下所示:

insert node <foo>bar</foo>
  into /bar//baz[id='qux']
variable $stores := doc("stores.xml")/stores;

insert node element store { 
  element store-number { 4 },
  element state { "CA" }
} into $stores;

$stores
插入节点栏
进入/bar//baz[id='qux']
在其他引擎中,这是一个


请参见

使用XQuery脚本,您可以编写如下程序:

insert node <foo>bar</foo>
  into /bar//baz[id='qux']
variable $stores := doc("stores.xml")/stores;

insert node element store { 
  element store-number { 4 },
  element state { "CA" }
} into $stores;

$stores

您可以在

现场试用这样的示例您必须使用XQuery来插入节点吗?了解您正在使用的XQuery实现将非常有用。最好是这样。你有什么建议?我不清楚这个答案的哪一部分取决于XQSX而不是XQUF(它将XQUF作为先决条件捆绑在一起)。