marklogic - MarkLogic 无法将变量分配给 cts:document-query()
问题描述
如何将变量分配给 cts:document-query()。我有从文件系统读取的示例代码,然后将变量分配给文档查询()。但它会排除错误。
案例 1)在没有将变量分配给文档查询的情况下工作。
let $list-pdf := cts:search(/,cts:and-query((
cts:directory-query("/pdf/"),
cts:document-query(("/pdf/US1610547.pdf", "/pdf/US1696102.pdf",
"/pdf/US1953345.pdf")))
for $pdf in $list-pdf
return base-uri($pdf)
返回结果:
/pdf/US1610547.pdf
/pdf/US1696102.pdf
案例 2 - 从文件系统读取后,我将变量分配给 document-query()。MarkLogic 给了我错误。
let $pdf := xdmp:filesystem-file("/output/listpdf.txt")
let $pdfs := tokenize($pdf,"\n")
let $list-pdf := cts:search(/,cts:and-query((
cts:directory-query("/pdf/"),
cts:document-query(($pdfs))
)))
for $pdf in $list-pdf
return base-uri($pdf)
返回错误代码:
[1.0-ml] XDMP-URI: cts:document-query(("/pdf/US1610547.pdf", "/pdf/US1696102.pdf",...)) -- Invalid URI format: ""
解决方案
错误消息表明标记化的结果在 URI 序列中包含一个空字符串项:
-- Invalid URI format: ""
您可以在标记化后应用谓词以排除空字符串(或使用更复杂的逻辑,具体取决于您的输入可以信任的程度),即:
let $pdfs := tokenize($pdf,"\n")[. ne ""]
推荐阅读
- ios - 反应原生 iOS 网络请求失败 - 代理设置问题
- veins - 我如何定义两辆车在血管中越来越远?
- vba - 在 DoCmd.TransferDatabase 中使用连接字符串变量
- r - 如何在 R 中通过加权平均栅格化点数据?
- rest - Informatica BDM - 如何重试“REST Web 服务使用者”?
- javascript - 如何将逻辑语句引入 XML 视图或如何更改某些 Table 项目的展示方式
- r - Anova not working at multilevel analysis - "$ operator not defined for this S4 class"
- prometheus - Prometheus 同时监听不同的端口
- angular - 自动调整 textarea 最大 5 行限制,然后显示滚动条
- java - 如何仅使用 java 使用特殊字符(包括空格)创建大小为 5 的非重复随机字符串?