0
我從一個XML格式的,其他轉化寫的XSLT。XSLT分組 - 從一個XML格式轉換爲其他
我的源文件有多個「訂單生產」和一個「限購令」 我的目的地只有一個「限購令」持有所有生產訂單。
這裏是我的源XML格式
<GenomicOrder>
<SalesOrder>
....
</SalesOrder>
<ProductionOrder>
....
</ProductionOrder>
<ProductionOrder>
....
</ProductionOrder>
<ProductionOrder>
....
</ProductionOrder>
</GenomicOrder>
我的目的地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轉換是如下面
<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;
是有,我可以做反序列化一個傳中的所有對象的任何變化。我爲「GenomicOrder/ProductionOrder」和「GenomicOrder/SalesOrder」編寫了轉換。
我張貼在之後的結果樹'SalesOrder'元素成'SalesOrder'一個代碼示例,封裝了'ProductionOrder'元素,所以我認爲樣品你想要做什麼。 – 2012-04-27 11:30:36
如果問題是出在C#代碼,你貼,而不是與XSLT再考慮重新標記您的問題或至少說明XSLT和C#之間的關係。 – 2012-04-27 11:53:44