将动态xml节点映射到静态节点

问题描述 投票:0回答:1

我正在寻找可以帮助您解决看似简单的问题的人。我想将/ fields [x] / message_id的节点映射到列表中5个条目的静态节点/ MessageID0x。源节点是可选的,可能不存在。该架构如下我希望我看不到明显的东西。

源定义为:

<xs:element name="fields">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="tenant_id" type="xs:normalizedString" minOccurs="0"/>
            <xs:element name="message_id" type="xs:normalizedString" minOccurs="0"/>

目标定义为:

<xs:element name="MessageID01" type="xs:normalizedString" minOccurs="0"/>
<xs:element name="MessageID02" type="xs:normalizedString" minOccurs="0"/>
<xs:element name="MessageID03" type="xs:normalizedString" minOccurs="0"/>
<xs:element name="MessageID04" type="xs:normalizedString" minOccurs="0"/>
<xs:element name="MessageID05" type="xs:normalizedString" minOccurs="0"/>

=== FROM ============>

<root>
<ID>2019Nov12_17</ID>
<PingResult>OK</PingResult>
<StartDateTime>2019-11-12T16:16:01</StartDateTime>
<EndDateTime>2019-11-12T17:16:01.771Z</EndDateTime>
<start>0</start>
<numFound>1</numFound>
<fields>
    <tenant_id>KOCHIND_AX2</tenant_id>
    <message_id>lid://infor.landmark.lmrkmt/15d8f834-7680-541e-0000-001d5dae3e7b</message_id>
</fields>
<fields>
    <tenant_id>KOCHIND_AX2</tenant_id>
    <message_id>lid://infor.landmark.lmrkmt/0535a86a-7680-1868-0000-07625db833c1</message_id>
</fields>
<fields>
    <tenant_id>KOCHIND_AX2</tenant_id>
    <message_id>lid://infor.landmark.lmrkmt/0535a86a-7680-1864-0000-03445db849c8</message_id>
</fields>
<fields>    
    <tenant_id>KOCHIND_AX2</tenant_id>
    <message_id>lid://infor.landmark.lmrkmt/0535a86a-7680-1867-0000-01151db125c8</message_id>
</fields>
</root>

TO ===================

<root>
<ID>2019Nov12_17</ID>
<PingResult>OK</PingResult>
<StartDateTime>2019-11-12T16:16:01</StartDateTime>
<EndDateTime>2019-11-12T17:16:01.771Z</EndDateTime>
<start>0</start>
<numFound>1</numFound>
<MessageID01>lid://infor.landmark.lmrkmt/15d8f834-7680-541e-0000-001d5dae3e7b</MessageID01>
<MessageID02>lid://infor.landmark.lmrkmt/0535a86a-7680-1868-0000-07625db833c1</MessageID02>
<MessageID03>lid://infor.landmark.lmrkmt/0535a86a-7680-1868-0000-07625db833c8</MessageID03>
<MessageID04>lid://infor.landmark.lmrkmt/15d8f834-1864—3322-0000-03445db125c8</MessageID04>
<MessageID05>lid://infor.landmark.lmrkmt/15d8f834-7680-1867-0000-01151db125g4</MessageID05>
</root>

我正在寻找可以帮助您解决看似简单的问题的人。我想将/ fields [x] / message_id的节点映射到列表中5个条目的静态节点/ MessageID0x。源节点是...

xslt
1个回答
0
投票

鉴于您可以将目标架构更改为如下形式:

© www.soinside.com 2019 - 2024. All rights reserved.