Re: Transformation of generic spreadsheet XML
Hi Xiaocun, > Very much appreciated for the well detailed answer :) My pleasure. >> I think you'd be better off storing the bidHeader row in a global >> variable (assuming that the row elements are children of a 'rows' >> document element here): >> >> <xsl:variable name="bidHeader" select="/rows/row" /> > > Sorry I did not provide the whole picture in my original post (it > was already pretty long :(). The actual source XML had many rows > before the $bidHeader row, therefore the bid header row does not > have exact position among its siblings. So my XSL had to catch that > bid header row and process all following siblings as follows: > > <xsl:template match="row" mode="createBids"> > <RFQRequest> > <xsl:element name="createBids"> > <xsl:apply-templates > select="following-sibling::row" mode="BidsDetail"/> > </xsl:element> > </RFQRequest> > </xsl:template> > > <xsl:template match="row" mode="BidsDetail"> > <xsl:if test="string(cell) = string('BidType') or > substring(cell,2) = string('BidType')"> > <xsl:variable name="bidHeader" select="."/> > ...... You don't need to use the string() function to convert strings to strings - string('BidType') is *exactly* the same as 'BidType'. Also, you don't have to convert cell to a string explicitly - it's being compared to a string ('BidType') so it'll automatically be converted to a string for the comparison. So your test in the above is exactly the same as: cell = 'BidType' or substring(cell, 2) = 'BidType' But even with the fact that you can't just get the *first* row, I think you could still store that particular row as a global variable with: <xsl:variable name="row" select="/rows/row[cell = 'BidType' or substring(cell, 2) = 'BidType']" /> This selects the row where the value of the first cell is 'BidType' or where the substring of the value of that first cell after the first character is 'BidType'. I hope that helps, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
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