하나의 XML 형식에서 다른 형식으로 변환하기 위해 작성된 xslt가 있습니다.xslt 그룹화 - 하나의 XML 형식에서 다른 형식으로 변환
내 소스 파일에 "생산 주문"과 "판매 주문"이 하나씩 있습니다 내 대상에는 모든 생산 주문을 보유하는 "판매 주문"이 하나만 있습니다. 여기
는<GenomicOrder>
<SalesOrder>
....
<ProductionOrder>
....
</ProductionOrder>
<ProductionOrder>
....
</ProductionOrder>
<ProductionOrder>
....
</ProductionOrder>
</SalesOrder>
</GenomicOrder>
내 직렬화 코드가
DataContractSerializer ser = new DataContractSerializer(typeof(SalesOrder));
FileStream fs =
new FileStream(
@"C:\realsample.xml",
FileMode.Open);
XmlDictionaryReader reader1 = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
//Deserialize the data and read it from the instance.
SalesOrder parent = (SalesOrder)ser.ReadObject(reader1, true);
reader1.Close();
내 성공적인 판매 주문 XSLT 변환 다음과 같다 아래와 같이
<GenomicOrder>
<SalesOrder>
....
</SalesOrder>
<ProductionOrder>
....
</ProductionOrder>
<ProductionOrder>
....
</ProductionOrder>
<ProductionOrder>
....
</ProductionOrder>
</GenomicOrder>
내 대상 XML 형식은 내 소스 XML 형식입니다 다음과 같습니다.
<xsl:template match="/">
<SalesOrder>
<xsl:apply-templates select="GenomicOrder/SalesOrder"/>
<ProductionOrders>
<xsl:apply-templates select="GenomicOrder/ProductionOrder"/>
</ProductionOrders>
</SalesOrder>
</xsl:template>
SalesOrder.OrderId = 1234; SalesOrder.ProductionOrder = null;
내 성공적 생산 오더 XSLT 변환은 다음과 같다
<xsl:template match="/">
<SalesOrder>
<ProductionOrders>
<xsl:apply-templates select="GenomicOrder/ProductionOrder"/>
</ProductionOrders>
<xsl:apply-templates select="GenomicOrder/SalesOrder"/>
</SalesOrder>
</xsl:template>
SalesOrder.OrderId = NULL; SalesOrder.ProductionOrder.OrderRef = 12345;
모든 변경 사항을 한 번에 모든 개체를 deserialize 할 수 있습니다. "GenomicOrder/ProductionOrder"및 "GenomicOrder/SalesOrder"둘 다로 작성된 변환이 있습니다.
'SalesOrder'요소 다음에 나오는 'ProductionOrder'요소를 결과 트리의 해당 SalesOrder 요소로 래핑하는 코드 샘플을 게시하여 샘플이 원하는대로 처리 할 것으로 생각합니다. –
XSLT가 아닌 게시 한 C# 코드에 문제가있는 경우 질문을 다시 찾거나 적어도 XSLT와 C# 간의 관계를 설명하십시오. –