0
重新張貼,因爲它是從我剛纔的問題不同的需求..複雜的情況下在XSLT
嗨XSLT處理的大師,
我有一點複雜的要求。我需要從另一個節點獲取來自另一個節點的值。 請參見下面的示例:
<ObjectEvent>
<epcList>
<epc>111</epc>
<epc>222</epc>
</epcList>
<material>ABC</material>
</ObjectEvent>
<ObjectEvent>
<epcList>
<epc>333</epc>
</epcList>
<material>DEF</material>
</ObjectEvent>
<ObjectEvent>
<epcList>
<epc>containerFOR111222</epc>
</epcList>
</ObjectEvent>
<ObjectEvent>
<epcList>
<epc>containerFOR333</epc>
</epcList>
</ObjectEvent>
<AggregationEvent>
<parentID>containerFOR111222</parentID>
<childEPCs>
<epc>111</epc>
<epc>222</epc>
</childEPCs>
</AggregationEvent>
<AggregationEvent>
<parentID>containerFOR333</parentID>
<childEPCs>
<epc>333</epc>
</childEPCs>
</AggregationEvent>
父節點的數量將取決於獨特的材料。所以在這種情況下會有2.輸出應該是這樣的:
<MATERIAL>
<BATCH>ABC</BATCH>
<SERIES>
<TOTAL>2</TOTAL>
<EPCS>
<EPC>111</EPC>
<CONTAINER>containerFOR111222</CONTAINER>
</EPCS>
<EPCS>
<EPC>222</EPC>
<CONTAINER>containerFOR111222</CONTAINER>
</EPCS>
</SERIES>
</MATERIAL>
<MATERIAL>
<BATCH>DEF</BATCH>
<SERIES>
<TOTAL>1</TOTAL>
<EPCS>
<EPC>333</EPC>
<CONTAINER>containerFOR333</CONTAINER>
</EPCS>
</SERIES>
</MATERIAL>
我已經拿到材料,批,系列,TOTAL,EPCS和EPC的權利。問題在於CONTAINER字段。我無法獲得第二個上下文的值(containerFOR333)。 。我剛開始第一方面:(
這是映射,我現在的價值,我沒有一個想法集裝箱:
<xsl:for-each select="//ObjectEvent/material">
<MATERIAL>
<BATCH>
<xsl:value-of select="./material"/>
</BATCH>
<SERIES>
<TOTAL>
<xsl:value-of select="count(./epcList/epc"/>
</TOTAL>
<xsl:for-each select="./epcList/epc">
<EPCS>
<EPC>
<xsl:value-of select="./epcList/epc"/>
</EPC>
<CONTAINER>???</CONTAINER>
</EPCS>
</xsl:for-each>
</SERIES>
</MATERIAL>
</xsl:for-each>
我的實際來源,目標信息和測繪是比這要複雜得多,所以希望病人能夠從一個簡單的解決方案工作,那麼我的方式,以更高的複雜性
感謝!