在氧气中运行XQuery:Can';t访问文档节点中的节点
我想编写一个查询,返回XML文档中的特定元素,但当我使用路径表达式返回文档中的元素(即文档节点之外的元素)时,它总是返回一个空序列 下面是我要查询的XML的前几行:在氧气中运行XQuery:Can';t访问文档节点中的节点,xquery,exist-db,oxygenxml,Xquery,Exist Db,Oxygenxml,我想编写一个查询,返回XML文档中的特定元素,但当我使用路径表达式返回文档中的元素(即文档节点之外的元素)时,它总是返回一个空序列 下面是我要查询的XML的前几行: <?xml version="1.0" encoding="UTF-8"?> <?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schema
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
schematypens="http://purl.oclc.org/dsdl/schematron"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
<fileDesc>
<titleStmt>
<title>LMW Day Book, pp. 160-161</title>
我还可以使用doc()函数返回单个文档节点。但是,我不能使用路径表达式返回文档节点中的节点。例如,下面返回一个空序列:
let $title := doc("/db/apps/Step3_LMWdbk_Jana's_Files")/TEI/teiHeader/fileDesc/titleStmt/title
return $title
我排除的是:
为了进一步测试,我又编写了几个查询,包括一个访问最外面的元素(即doc(…)/TEI)和一个访问所有元素(即doc(…)/cell
):它们都返回一个空序列。这表明路径表达式中的错误不是根本问题
我正在OxygenXML编辑器中运行XQuery。我已经将一个eXist数据库连接到oXygen,并且正在使用eXist数据库提供的XQuery引擎。我已经检查了我是否连接到eXist,并且我的转换场景使用eXist作为它的转换器 注意,文档有一个默认名称空间
,因此在查询前加上声明默认元素名称空间“http://www.tei-c.org/ns/1.0“
。由于没有显示整个文档,可能会使用其他名称空间。同意这可能是名称空间问题。另一种方法是使用declare namespace tei=”声明名称空间http://www.tei-c.org/ns/1.0";
并在路径表达式中的元素前面加上tei
名称空间前缀,例如:/tei:tei/tei:teiHeader/tei:fileDesc/tei:titlesmt/tei:title
。您应该对下面的答案提供一些反馈。。。
let $title := doc("/db/apps/Step3_LMWdbk_Jana's_Files")/TEI/teiHeader/fileDesc/titleStmt/title
return $title