Subject: Re: [xsl] Sibling or Node manipulation From: JBryant@xxxxxxxxx Date: Tue, 27 Sep 2005 16:29:35 -0500 |
Siarom sent me a private follow-up to ask me how to go about creating that table. I then replied in private. Since then, I have thought of a better solution (that one was more verbose and required a node-set extension or XSLT 2.0). And this time, I remembered to send my reply to the list, so that it can get into the archives. Here's my better solution: <xsl:template match="customersRepInfo"> <fo:block><xsl:value-of select="criLine[1]"/></fo:block> <fo:table table-layout="fixed"> <fo:table-column column-width="3in"/> <fo:table-column column-width="3in"/> <fo:table-body> <fo:table-row> <fo:table-cell> <fo:block><xsl:value-of select="criLine[3]"/></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="criLine[2]"/></fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> <fo:block><xsl:value-of select="criLine[4]"/></fo:block> <fo:block><xsl:value-of select="criLine[5]"/></fo:block> </xsl:template> Note that this solution relies on the criLine nodes always being in the same order. If they appear in different orders, you'll need to figure out how to distinguish a date from a name from a title and so on. If you have any control over the incoming XML, you'd be much better served to give each criLine a distinct name. HTH Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) JBryant@xxxxxxxxx 09/27/2005 03:21 PM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc Subject Re: [xsl] Sibling or Node manipulation One way is to use a table that has one row and two cells, one cell for the date and one for the "Your Signature" block. Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) siarom egrub <egrubs@xxxxxxxxx> 09/27/2005 03:04 PM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To Mulberry <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> cc Subject [xsl] Sibling or Node manipulation I have the following XML <customersRepInfo> <criLine>Your Name (Print):</criLine> <criLine>Your Signature:</criLine> <criLine>Date:</criLine> <criLine>Your Job Title:</criLine> <criLine>Telephone Number:</criLine> </customersRepInfo> How can I get the "Date:" line to aligned across from (horizontal to) the "Your Signature:" line my output PDF file? I have this tried <xsl:template match="customersRepInfo"> <xsl:for-each select="criLine"> <fo:block space-before="3mm" font-size="4.8mm"> <!--xsl:apply-templates/--> <xsl:value-of select="preceding-sibling::* [2]."/>  <!--This doesn't display the "Telephone Number:" line---> <!--<xsl:value-of select="."/>--> <!--Displays all the lines in same order as XML---> <fo:leader leader-length="3in" leader-pattern="rule"/> </fo:block> </xsl:for-each> </xsl:template> but without the solution that I want. Thanks in advance for your help! ~S.E. __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Sibling or Node manipulat, JBryant | Thread | Re: [xsl] Sibling or Node manipulat, siarom egrub |
Re: [xsl] more xsl:number confusion, Jack Matheson | Date | Re: [xsl] Adding elements to unknow, Gustave Stresen-Reut |
Month |