2007年7月5日 星期四

Turning Rows into Columns

http://forums.oracle.com/forums/message.jspa?messageID=1921986#1921986

在這邊的討論
算是XMLP的進階應用...

然而感謝Anil Passi 的網站
介紹以xsl變數宣告模擬for loop的方式
才能應用到這的問題上

TEXT001{NO_IN_A_ROW}
TEXT002{INNER_GROUP}

---------------------------------------------------------------
| Attribute | Emp TEXT003{F} TEXT004{1} TEXT005{E} |
---------------------------------------------------------------
| Name | Emp TEXT003{F} TEXT006{Name} TEXT005{E} |
---------------------------------------------------------------
| Department | Emp TEXT003{F} TEXT007{DEPT} TEXT005{E} |
---------------------------------------------------------------
| Salary | Emp TEXT003{F} TEXT008{1000} TEXT005{E} |
---------------------------------------------------------------

TEXT005{E}


where TEXT004,TEXT005,TEXT006,TEXT007,TEXT008 are the same as the original document,
and

TEXT001: <xsl:variable name="no_in_a_row" select="number(5)"/>
TEXT002: <xsl:variable xdofo:ctx="incontext" name="inner_group" select=".//ROW"/>
<?for-each:$inner_group?><?if:(position()-1) mod $no_in_a_row=0?><xsl:variable name="first_rec" xdofo:ctx="incontext" select="position()"/>
TEXT003: <?for-each@cell:$inner_group[position()>=$first_rec and position() <$first_rec+$no_in_a_row]?>

沒有留言: