2017-05-26 13 views
0

私は以下のxmlを持っています。MarkLogic構造体クエリの検索

<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> 

私は、JavaクライアントAPIを使用して(つまり/mycompany/mlabcNew.docある) 'から' 属性の値を取得したいです。

iは、結果をフェッチするために構造化されたクエリの下に試してみましたが、私はこれを取得する方法を見つけることができませんでした

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")); 

結果を取得できませんでした。助けてください

答えて

1

'to'と呼ばれる属性の名前空間は、サンプルに応じて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を使用してクエリコンソールに名前と名前空間を属性。これにより、多くのレイヤが削除され、場合によってはトラブルシューティングがより簡単になります。