MarkLogic - JSON 文档上的 Xpath

MarkLogic - Xpath on JSON document

MarkLogic 版本:9.0-6.2

我正在尝试在如下所示的 JSON 文档中应用 Xpath in extract-document-data(使用查询选项)。如果下面的 属性 "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" 属性 拉取,如下所示。

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

但我的需求是从父 "Category" 属性 拉取,但过滤掉 OptIn 值为 False 的 Channels。

有什么指点吗?

如果我没理解错的话,你想提取 'Category',但仅限那些 'OptIn' 等于 'true' 的“频道”,对吗?

Extract-document-data 还不够先进。您最好提取至少有一个 OptIn 等于 true (//Category[//OptIn = 'true']) 的整个类别,然后对搜索响应使用 REST 转换以在不需要的渠道中找到 trim。 .

HTH!