[Home] [By Thread] [By Date] [Recent Entries]
On 12/11/06, David Carlisle <davidc@xxxxxxxxx> wrote:
I fear that you will need to try to make a small input example and a small output example. Perhaps someone could glean more information from your description than I could, but I wouldn't be able to suggest any code just from the description so far, sorry.
<Report>
<methods>
<Method/>
</methods>
<cals>
<Cal/>
</cals>
<blanks>
<Blank/>
</blanks>
<StdCollection/>
<schedule>
<schGrps>
<schGrp stdOID="400829e4-47eb-49c5-8caa-9a16c1745b13">
<schLine position="1">
<metadata>
<blankDoc version="2"
revision="0">c9df660e-9aeb-45c9-9676-9580ec7c3e8d</blankDoc>
<methodDoc version="1"
revision="0">9a928d31-2320-4d67-af3b-bf5f16a7eb7b</methodDoc>
<calDoc version="1"
revision="0">e6f42bb1-a8d2-4277-a773-32a25d730fd6</calDoc>
<stdDetailLineOID>c170cafc-e2e2-47e7-8c14-9747e6f3c1f0</stdDetailLineOID>
<dilution>0</dilution>
</metadata>
</schLine>
</schGrp>
</schGrps>
</schedule>
<electronicSignatures/>
</Report>Here are the current keys defined in the XSLT: <xsl:key name="Method" match="/Report/methods/Method" use="concat(@objectID,'/',@version)"/> <xsl:key name="Cal" match="/Report/cals/Cal" use="concat(@objectID,'/',@version,'/',@revision)"/> <xsl:key name="Blank" match="/Report/blanks/Blank" use="concat(@objectID,'/',@version,'/',@revision)"/> <xsl:key name="StdItem" match="/Report/StdCollection/standardLines/standardLine" use="objectID"/> <xsl:key name="DetailLine" match="/Report/StdCollection/standardLines/standardLine/detailLines/detailLine" use="objectID"/> And here is where I am using it right now: <xsl:template match="schGrp">
<xsl:variable name="method"
select="key('Method',concat(schLine[1]/metadata/methodDoc,'/',schLine[1]/metadata/methodDoc/@version))"/>
<xsl:variable name="calSummaryInfo"
select="key('Cal',concat(schLine[1]/metadata/calDoc,'/',schLine[1]/metadata/calDoc/@version,'/',schLine[1]/metadata/calDoc/@revision))/calSummaryInfo"/> <table border="1">
<tr>
<td style="width: 20%">
Dilution:
<xsl:value-of
select="$method/analysisBasicTypes/analysisBasicType/parameter[@paramName='Dilution']"/>
</td>
<td style="width: 20%">
Blank Contribution:
<xsl:value-of
select="schLine[1]/replicateResults/replicateResult[1]/blankContribution"/>
</td>
<td style="width: 20%">
Method:
<xsl:value-of
select="$method/methodSummaryInfo/SummaryInfo/name"/>
</td>
<td style="width: 20%">
Calibration:
<xsl:value-of select="$calSummaryInfo/SummaryInfo/name"/>
</td>
<td style="width: 20%">
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
</td>
</tr>
</table>The real complexity comes in when I have to take into account all the dilution from the group. schLine elements that have the same position, have the same dilution. There can be anywhere from one or more dilutions within a group. The desired output would be a table where the first dilution would be in the fifth column of the table above, and than the next 5 dilutions would be on the next row, etc. Of course, if the schGrp has 10 lines, but only 3 dilutions, we only want to display the three different dilutions. For example na, that isn't exactly what I was asking;) Here is a better formated question: Given this xml: <nodes> <node name="a">1</node> <node name="b">2</node> <node name="c">3</node> <node name="d">4</node> <node name="e">5</node> <node name="f">6</node> <node name="g">7</node> <node name="h">8</node> <node name="i">9</node> <node name="j">10</node> </nodes> how do I make a table that looks like this: a:1 b:2 c:3 d:4 e:5 f:6 g:7 h:8 i:9 j:10 In other words, a 5x2 table. I am thinking that if I can get all the name/values in the first example into a node set like in the second, then all I would have to do is get the second node set into a table of 5 columns with X number of rows. -- Miltonstreet Photography http://www.miltonstreet.com
|

Cart



