Xml XQuery请求打开整个文件

Xml XQuery请求打开整个文件,xml,xquery,basex,Xml,Xquery,Basex,下面是我的代码,它旨在创建一个XQuery请求,以便在xml文档(personne.xml,如下所示)中查找一个单词,但我有一个问题:变量$var包含整个xml文件,即使我选择了节点$books doc/Dictionnaire/mot declare namespace page='1〕http://basex.org/modules/web-page/traitement.xq'; 声明 %其余:路径(“”) %输出:方法(“xhtml”) %输出:省略xml声明(“否”) %输出:doct

下面是我的代码,它旨在创建一个XQuery请求,以便在xml文档(personne.xml,如下所示)中查找一个单词,但我有一个问题:变量
$var
包含整个xml文件,即使我选择了节点
$books doc/Dictionnaire/mot

declare namespace page='1〕http://basex.org/modules/web-page/traitement.xq';
声明
%其余:路径(“”)
%输出:方法(“xhtml”)
%输出:省略xml声明(“否”)
%输出:doctype public(“-//W3C//DTD XHTML1.0//EN”)
%输出:doctype系统(“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd")
函数页:start()作为元素(Q{http://www.w3.org/1999/xhtml}(html)
{
莫特酒店
我的字典
维列兹·克莱尔·莫塔·切切尔

Votre mot:

}; 声明 %rest:path(“/traitement”) %其余:邮递 %其余:表格参数(“mot”、“{$mot}”、“(无mot)”) 函数页:recherche($mot作为xs:string)作为元素(Q{http://www.w3.org/1999/xhtml}(html) { 莫特记录:{$mot} 莫特记录:{$Mot} 出租服装: { let$books doc:=doc(“personne.xml”) 对于$books doc/Dictionnaire/mot中的$var 返回 如果($var/genre!=$mot),则
  • {$var/genre}
  • 其他的
  • {$var/genre}
  • }

    }; 第页:开始()
    XML文件personne.XML:

    
    Mot 1
    会议1
    Def 1
    运动2
    会议2
    Def 2
    
    这是一个名称空间问题。在以下位置包含默认命名空间:

     <html xmlns="http://www.w3.org/1999/xhtml">
    
    
    
    您要么必须定义正确的名称空间,要么可以使用通配符运算符,例如

    将函数页:recherche($mot as xs:string)声明为元素(Q{http://www.w3.org/1999/xhtml}(html)
    {
    莫特记录:{$mot}
    莫特记录:{$Mot}
    出租服装:
    {
    let$books doc:=doc(“personne.xml”)
    对于$books doc/*:Dictionnaire/*:mot中的$var
    返回
    如果($var/*:流派!=$mot),那么
    
  • {$var/*:流派}
  • 其他的
  • {$var/*:流派}
  • }

    };
    顺便说一下,您不应该将自己的代码放在“外来”名称空间下。使用您自己的域。您还应该考虑设置<代码>输出:< /Cord>注释> <代码>页:ReChChe函数,特别是至少应该将输出的MIME类型设置为<代码>文本/HTML<代码>或<代码>应用程序/XML+XHTML< /代码>。谢谢您的回答,它工作得很好。我很感激。@user3346640很高兴它起作用了。你能接受这个答案吗?