在 Shipment 中存在订单数量。对于每个订单,都有多个订单行项目。订单行项目包含项目。对于每次迭代,我们都在维护层次结构级别。在 orderLine Items 部分中,如果前一个项目等于当前项目,则无需增加层次结构。
要点:
- 只有一件货物
- 每批货物的订单数量。
- 每个订单的 orderLineItem 数。
对于订单和 orderlineItems 的每次迭代,我们必须维护一个层次结构级别(增量值),但是对于 orderLineItems,如果前一个项目等于当前项目,则存在一个条件,不需要增加层次结构级别。否则我们应该增加像下面我们需要的输出的层次结构级别。
下面是输入。
输入:
<shipment>
<order><!-- unbounded -->
<value>value 4</value>
<other>item1</other>
<OrderLineItems><!-- unbounded -->(conditions comes under this section only not in Order section)
<Lineitem>3</LineItem>
</OrderLineItems>
<OrderLineItems>
<Lineitem>3</LineItem>
</OrderLineItems>
<OrderLineItems>
<Lineitem>2</LineItem>
</OrderLineItems>
</order>
<order>
<value>value 98</value>
<other>item2</other>
<OrderLineItems>
<Lineitem>8</LineItem>
</OrderLineItems>
<OrderLineItems>
<Lineitem>3</LineItem>
</OrderLineItems>
<OrderLineItems>
<Lineitem>4</LineItem>
</OrderLineItems>
</order>
<order>
<value>value 98</value>
<other>item2</other>
<OrderLineItems>
<Lineitem>8</LineItem>
</OrderLineItems>
<OrderLineItems>
<Lineitem>3</LineItem>
</OrderLineItems>
<OrderLineItems>
<Lineitem>4</LineItem>
</OrderLineItems>
</order>
</shipment>
下面是我们需要的输出。
输出:
<ns1:Shipment>
<ns1:Shipment1>1</ns1:Shipment1>
<ns1:ShipmentValue>S</ns1:ShipmentValue>
<ns1:Order>
<ns1:Orderlevel1>2</ns1:Orderlevel1>
<ns1:Orderlevel2>1</ns1:Orderlevel2>
<ns1:Orderlevel3>O</ns1:Orderlevel3>
<ns1:OrderLineItems>
<ns1:Level1>3</ns1:Level1>
<ns1:Level2>2</ns1:Level2>
<ns1:Level3>I</ns1:Level3>
<ns1:Item>Item59</ns1:Item>
</ns1:OrderLineItems>
<ns1:OrderLineItems>
<ns1:Item>Item59</ns1:Item>
</ns1:OrderLineItems>
<ns1:OrderLineItems>
<ns1:Level1>4</ns1:Level1>
<ns1:Level2>2</ns1:Level2>
<ns1:Level3>I</ns1:Level3>
<ns1:Item>Item63</ns1:Item>
</ns1:OrderLineItems>
</ns1:Order>
<ns1:Order>
<ns1:Orderlevel1>5</ns1:Orderlevel1>
<ns1:Orderlevel2>1</ns1:Orderlevel2>
<ns1:Orderlevel3>O</ns1:Orderlevel3>
<ns1:OrderLineItems>
<ns1:Level1>6</ns1:Level1>
<ns1:Level2>5</ns1:Level2>
<ns1:Level3>I</ns1:Level3>
<Item>Item74</Item>
</ns1:OrderLineItems>
<ns1:OrderLineItems>
<ns1:Level1>7</ns1:Level1>
<ns1:Level2>5</ns1:Level2>
<ns1:Level3>I</ns1:Level3>
<Item>Item78</Item>
</ns1:OrderLineItems>
<ns1:OrderLineItems>
<ns1:Item>Item78</ns1:Item>
</ns1:OrderLineItems>
</ns1:Order>
</ns1:Shipment>