MarkLogic-JSON文档上的Xpath

时间:2018-11-07 19:10:26

标签: marklogic-9 marklogic-dhf

MarkLogic版本:9.0-6.2

我正在尝试在如下所示的JSON文档上的提取文档数据(使用查询选项)中应用Xpath。如果下面的属性“ OptIn”的值为“ True”,则需要过滤掉“ Channel”属性。

    {
        "Category":
          {
            "Name": "Severe Weather",
            "Channels":[
              {
                "Channel":
                  {
                    "Name":"Email",
                    "OptIn": "True"
                  }
              },
              {
                "Channel":
                  {
                    "Name":"Text",
                    "OptIn": "False"
                  }
              }
             ]
          }
      }

我尝试了以下代码,

'<extract-document-data selected="include">'  +
'<extract-path>//*[OptIn="True"]/../..</extract-path>' +
'</extract-document-data>' +

仅从“渠道”属性中提取,如下所示。

  [
    {
      "Channel": {
      "Name": "Email",
      "OptIn": "True"
      }
    }
  ]

但是我需要从父级“ Category”属性中提取,但要过滤掉OptIn值为False的通道。

有指针吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您想提取“类别”,但仅提取那些“ OptIn”等于“ true”的“频道”,对吧?

提取文档数据还不够高级。最好提取整个类别,其中至少一个OptIn等于true(// Category [// OptIn ='true']),然后在搜索响应上使用REST变换来修剪不需要的频道。

HTH!