아래 정의 된 형식으로 XML을 수신 중입니다. 특정 노드 만 병합되는 방식으로 XML을 변환하는 코드를 작성 중입니다.특정 XML 노드를 평평하게하는 XSLT
<TransactionRequest>
<OrderRequests>
<OrderRequest>
<ReferenceNumber>1234567</ReferenceNumber>
<TransactionTime>2010-11-16T00:00:00-08:00</TransactionTime>
<IsRush>true</IsRush>
<ShippingAddress>
<Name>Tom Hanks</Name>
<Address1>1123 Canada Way</Address1>
<City>Burnaby</City>
<Province>BC</Province>
<PostalCode>V3B13B</PostalCode>
<HomePhone>6048871121</HomePhone>
<BusinessPhone>6041232342</BusinessPhone>
</ShippingAddress>
<ProgramType>C2</ProgramType>
<Comments>Deliver to the receptionist</Comments>
<Items>
<Item>
<Sku>UN10004</Sku>
<Quantity>2</Quantity>
</Item>
<Item>
<Sku>UN980011</Sku>
<Quantity>1</Quantity>
</Item>
</Items>
</OrderRequest>
</OrderRequests>
<TraceRequests>
<TraceRequest>
<ReferenceNumber>23432345</ReferenceNumber>
<TransactionTime>2010-11-16T00:00:00-08:00</TransactionTime>
<OriginalReferenceNumber>1234567</OriginalReferenceNumber>
<Comments>Trace Items</Comments>
<TraceItems>
<TraceItem>
<Sku>UN10004</Sku>
<Quantity>2</Quantity>
<ShipmentNumber>CM88888990</ShipmentNumber>
</TraceItem>
<TraceItem>
<Sku>UN980011</Sku>
<ProductCode>AA0091</ProductCode>
<Quantity>1</Quantity>
<ShipmentNumber>DDP123123123</ShipmentNumber>
</TraceItem>
</TraceItems>
</TraceRequest>
</TraceRequests>
</TransactionRequest>
그 결과는 다음과 같습니다. 차이점은이 XML에서 TraceRequest 노드는 각 Items/Item에 대해 부모 정보를 한 번 복제하여 각 Items/Item 노드 당 하나씩 분할된다는 것입니다.
<?xml version="1.0"?>
<TransactionRequest>
<OrderRequests>
<OrderRequest>
<ReferenceNumber>1234567</ReferenceNumber>
<TransactionTime>2010-11-16T00:00:00-08:00</TransactionTime>
<IsRush>true</IsRush>
<ShippingAddress>
<Name>Tom Hanks</Name>
<Address1>1123 Canada Way</Address1>
<City>Burnaby</City>
<Province>BC</Province>
<PostalCode>V3B13B</PostalCode>
<HomePhone>6048871121</HomePhone>
<BusinessPhone>6041232342</BusinessPhone>
</ShippingAddress>
<ProgramType>C2</ProgramType>
<Comments>Deliver to the receptionist</Comments>
<Items>
<Item>
<Sku>UN10004</Sku>
<Quantity>2</Quantity>
</Item>
<Item>
<Sku>UN980011</Sku>
<Quantity>1</Quantity>
</Item>
</Items>
</OrderRequest>
</OrderRequests>
<TraceRequests>
<TraceRequest>
<ReferenceNumber>23432345</ReferenceNumber>
<TransactionTime>2010-11-16T00:00:00-08:00</TransactionTime>
<OriginalReferenceNumber>1234567</OriginalReferenceNumber>
<Comments>Trace Items</Comments>
<Sku>UN10004</Sku>
<Quantity>2</Quantity>
<ShipmentNumber>CM88888990</ShipmentNumber>
</TraceRequest>
<TraceRequest>
<ReferenceNumber>23432345</ReferenceNumber>
<TransactionTime>2010-11-16T00:00:00-08:00</TransactionTime>
<OriginalReferenceNumber>1234567</OriginalReferenceNumber>
<Comments>Trace Items</Comments>
<Sku>UN980011</Sku>
<ProductCode>AA0091</ProductCode>
<Quantity>1</Quantity>
<ShipmentNumber>DDP123123123</ShipmentNumber>
</TraceRequest>
</TraceRequests>
</TransactionRequest>
TraceRequest 요소의 특정 하위 노드 요소 만 병합하려면 XSLT를 생성 할 수없는 것 같습니다.