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