Marklogic 从根节点提取元素并填充每个文档
MarkLogic版本:9.0-6.2 下面是一个示例xml文件,我正在使用mlcp将其摄取到暂存数据库中。我的要求是将xml拆分为每个策略的单独文档,但在将TransactionRequestDt重新格式化为YYYYMMDDHHMMSS后,创建uri_id为/Policy/PolNum/TransactionRequestDt.xml。示例uri为/policy/P123/201610171533390000000.xmlMarklogic 从根节点提取元素并填充每个文档,marklogic,marklogic-9,mlcp,marklogic-dhf,Marklogic,Marklogic 9,Mlcp,Marklogic Dhf,MarkLogic版本:9.0-6.2 下面是一个示例xml文件,我正在使用mlcp将其摄取到暂存数据库中。我的要求是将xml拆分为每个策略的单独文档,但在将TransactionRequestDt重新格式化为YYYYMMDDHHMMSS后,创建uri_id为/Policy/PolNum/TransactionRequestDt.xml。示例uri为/policy/P123/201610171533390000000.xml <?xml version="1.0" encoding="UT
<?xml version="1.0" encoding="UTF-8"?>
<PolicyInfo>
<TransactionRequestDt>2016-10-17T15:33:39.770<TransactionRequestDt>
<Policy>
<PolNum>P123</PolNum>
....
....
</Policy>
<Policy>
<PolNum>P456</PolNum>
....
....
</Policy>
</PolicyInfo>
我的想法是使用transform函数重新格式化TransactionRequestDt,但意识到元素TransactionRequestDt对转换不可用(因为它在“策略”聚合之外)
访问TransactionRequestDt并在uri中使用它的最佳方式是什么?我试过了
-transaction_param TransactionRequestDt
但看起来参数值被传递为“TraceAcQuestEdtDT”(String),而不是TraseAcQueRestDt.< /P> < P>的实际日期值。我不考虑使用<代码> -PosigTyReordOngEngult< /Calp> PARAM,因此您可以访问转换中的完整文档(这将因此对整个文件调用一次)。在内部读取并规范化该日期,获取策略子项(使用类似于
content.xpath('/PolicyInfo/Policy')
),对这些子项进行迭代,并构建一个{uri:…,value:…}
对象序列,作为转换的结果返回。MLCP将检测您返回的多个结果,并将它们全部写入
这里有一个类似的SO答案和示例代码。请注意,它说的是拆分JSON,而不是XML。不要执行toObject()
,而是使用xpath()
,并且无需执行xdmp.toJSON()
:
嗯
-transaction_param TransactionRequestDt