我使用以下XQuery代码来选择集合中的所有.html文档 存在db。该脚本应创建一个XML文档(序列化为JSON),其中包含文档URI和标题(存储为第一个H1元素)。 但是元素仍然是空的。为什么呢?
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>
答案 0 :(得分:3)
我简化了对HTML文档的查找,但我认为你的h1
元素不是文档的根,而是我假设它可能在文档的任何位置,所以使用了{{1}轴,例如descendant-or-self
并且由于您的HTML可能位于命名空间中,我使用//
前缀来指示任何命名空间。
*: