我是xquery的新手,我正在尝试使用一个集合来重新加载我的网页并保留一些信息。我的问题是在我创建集合并使用(sausalito)保存我的节点之后,即使在我关闭程序之后,集合仍然存活。下次我使用该集合时,它已经有节点。我只需要集合来保存节点,然后重新加载网站和删除节点。问题是我无法删除集合或节点。我尝试使用delete-nodes()和http://www.zorba-xquery.com/doc/zorba-1.4.0/zorba/xqdoc/xhtml/www.zorba-xquery.com_modules_xqddf.html#delete-index-1
中的其他方法我有什么
declare collection resultview:collection as node()*;
declare variable $resultview:collection as xs:QName := xs:QName("resultview:collection");
declare sequential function resultview:add($allMovies as element(movies))
{
for $movie in $allMovies
return xqddf:insert-nodes($resultview:collection, $allMovies);
fn:trace(xqddf:collection($resultview:collection), "Collection data: "),
exit returning resultview:list();
};
declare sequential function resultview:deleteList() {
let $a := ""
return xqddf:delete-index($resultview:collection);
exit returning resultview:list();
};
答案 0 :(得分:2)
如果我理解正确,这应该有效:
declare collection resultview:collection as node()*;
declare variable $resultview:collection as xs:QName := xs:QName("resultview:collection");
declare sequential function resultview:add($allMovies as element(movies))
{
xqddf:insert-nodes($resultview:collection, $allMovies);
resultview:list();
};
declare sequential function resultview:deleteList() {
xqddf:delete-nodes(
$resultview:collection,
xqddf:collection($resultview:collection));
resultview:list();
};
使用delete-nodes而不是delete-index(后者删除一个完整的索引而不是特定索引位置的节点)。
有帮助吗?