我的xml以下。
<prop:properties xmlns:prop="http://marklogic.com/xdmp/property">
<cpf:processing-status xmlns:cpf="http://marklogic.com/cpf">done</cpf:processing-status>
<cpf:property-hash xmlns:cpf="http://marklogic.com/cpf">6b9dab35ed148cd08bba59503892a0fd</cpf:property-hash>
<cpf:last-updated xmlns:cpf="http://marklogic.com/cpf">2017-05-23T17:56:54.5734822+05:30</cpf:last-updated>
<cpf:state xmlns:cpf="http://marklogic.com/cpf">http://marklogic.com/states/converted</cpf:state>
<lnk:link from="/mycompany/mlabcNew_doc.xhtml" to="/mycompany/mlabcNew.doc" rel="source" rev="conversion" strength="strong" xmlns:lnk="http://marklogic.com/cpf/links"/>
<cpf:self xmlns:cpf="http://marklogic.com/cpf">/mycompany/mlabcNew.doc</cpf:self>
</prop:properties>
我希望将&#39;的属性值设为&#39; (即/mycompany/mlabcNew.doc)使用java客户端API。
我尝试过以下结构化查询来获取结果但没有得到结果
StructuredQueryBuilder qb = queryMgr.newStructuredQueryBuilder();
StructuredQueryDefinition query = qb.properties(
qb.word(qb.elementAttribute(
qb.element(new QName("http://marklogic.com/cpf/links", "link")),
qb.attribute(new QName("http://marklogic.com/cpf/links", "to"))),
"/mycompany/mlabcNew_doc.xhtml"));
我没有找到解决方法。请帮忙
答案 0 :(得分:1)
名为&#39;到&#39;的属性的名称空间。根据您的样本,不是cpf / links命名空间。
尝试:
StructuredQueryBuilder qb = queryMgr.newStructuredQueryBuilder();
StructuredQueryDefinition query = qb.properties(
qb.word(qb.elementAttribute(
qb.element(new QName("http://marklogic.com/cpf/links", "link")),
qb.attribute(new QName("", "to"))),
"/mycompany/mlabcNew_doc.xhtml"));
注意:在对此类事情进行故障排除时,我通常会使用xPath在Query Console中确认元素和属性名称以及命名空间。这样可以删除多个图层,并在某些情况下使故障排除更加简单。