[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Searching in Sub-children from an Array
Hello, May I rephrase my question, please? XML Input: <tree> <fruit ID="111"> <mango ID="333"> <colour> <Rate_Structure_Event> <Rate ConceptType="Rate_Event"> <Added_Unit_Rate>909000</Added_Unit_Rate> </Rate> <Rate ConceptType="Rate_Event"> <Added_Unit_Rate>889000</Added_Unit_Rate> </Rate> </Rate_Structure_Event> </colour> </mango> <orange ID="222"> <color>orange</color> </orange> </fruit> <fruit_adjustment> <color> <Path> <Steps>111,333</Steps> </Path> <Rate_Event ConceptType="Rate_Event"> <Added_Unit_Rate>3000</Added_Unit_Rate> </Rate_Event> <Rate_Event ConceptType="Rate_Event"> <Added_Unit_Rate>2000</Added_Unit_Rate> </Rate_Event> </color> </fruit_adjustment> </tree> XSLT 2.0: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="step" match="fruit_adjustment/color//Rate_Event" use="../Path/Steps"/> <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="fruit_adjustment"/> <xsl:template match="colour"> <xsl:copy-of select="(key('step',string-join(ancestor-or-self::*[@ID]/@ID,',')),.)[*] "/> </xsl:template> </xsl:stylesheet> Expected Output: <tree> <fruit ID="111"> <mango ID="333"> <colour> <Rate_Structure_Event ConceptType="Rate_Structure_Event" ID="23b6128e-b622-4fa9-983b-95349bed5d41"> <Rate_Event ConceptType="Rate_Event"> <Added_Unit_Rate>3000</Added_Unit_Rate> </Rate_Event> <Rate_Event ConceptType="Rate_Event"> <Added_Unit_Rate>2000</Added_Unit_Rate> </Rate_Event> </Rate_Structure_Event> </colour> </mango> <orange ID="222"> <color>orange</color> </orange> </fruit> </tree> However I get this output: <tree> <fruit ID="111"> <mango ID="333"> <Rate_Event ConceptType="Rate_Event"> <Added_Unit_Rate>3000</Added_Unit_Rate> </Rate_Event> <Rate_Event ConceptType="Rate_Event"> <Added_Unit_Rate>2000</Added_Unit_Rate> </Rate_Event> <colour> <Rate_Structure_Event ConceptType="Rate_Structure_Event" ID="23b6128e-b622-4fa9-983b-95349bed5d41"> <Rate ConceptType="Rate_Event"> <Added_Unit_Rate>909000</Added_Unit_Rate> </Rate> <Rate ConceptType="Rate_Event"> <Added_Unit_Rate>909000</Added_Unit_Rate> </Rate> </Rate_Structure_Event> </colour> </mango> <orange ID="222"> <color>orange</color> </orange> </fruit> </tree> Why are the elements copied outside the <colour>? I think the problem lies in <xsl:copy-of select="(key('step',string-join(ancestor-or-self::*[@ID]/@ID,',')),.)[*] "/> Any comments please? Many Thanks, Houman
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|