在XQuery 3.0(exist db)中获取标记内容
我使用以下XQuery代码来选择集合中的所有.html文档 数据库的存在。脚本应该创建一个XML文档(序列化为JSON),其中包含文档URI和标题(存储为第一个H1元素)。 但是,元素仍然为空。为什么?在XQuery 3.0(exist db)中获取标记内容,xquery,exist-db,Xquery,Exist Db,我使用以下XQuery代码来选择集合中的所有.html文档 数据库的存在。脚本应该创建一个XML文档(序列化为JSON),其中包含文档URI和标题(存储为第一个H1元素)。 但是,元素仍然为空。为什么? xquery version "3.0"; declare option exist:serialize "method=json media-type=text/javascript"; <result> { let $data-collection := '/db/ou
xquery version "3.0";
declare option exist:serialize "method=json media-type=text/javascript";
<result> {
let $data-collection := '/db/output'
for $doc in collection($data-collection)
where contains(base-uri($doc), '.html')
return
<item>
<url>{base-uri($doc)}</url>
<title>{$doc/h1/text()}</title>
</item>
}
</result>
xquery版本“3.0”;
declare option exist:序列化“method=json media type=text/javascript”;
{
让$data collection:='/db/output'
对于集合中的$doc($data collection)
其中包含(基本uri($doc),“.html”)
返回
{基本uri($doc)}
{$doc/h1/text()}
}
我简化了HTML文档的查找,但我认为您的h1
元素不是文档的根,而是我假设它可能位于文档中的任何位置,因此使用了子体或self
轴,例如,/
由于您的HTML可能位于名称空间中,我使用了*:
前缀来指示任何名称空间
xquery version "3.0";
declare option exist:serialize "method=json media-type=text/javascript";
<result> {
let $data-collection := '/db/output'
for $doc in collection($data-collection)[ends-with(base-uri(.), '.html')]
return
<item>
<url>{base-uri($doc)}</url>
<title>{$doc//*:h1/text()}</title>
</item>
}
</result>
xquery版本“3.0”;
declare option exist:序列化“method=json media type=text/javascript”;
{
让$data collection:='/db/output'
对于集合中的$doc($data collection)[以(基本uri(.),'.html')结束]
返回
{基本uri($doc)}
{$doc/*:h1/text()}
}