Marklogic 从根节点提取元素并填充每个文档

Marklogic 从根节点提取元素并填充每个文档,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

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