我有一个xslt问题。下面是我需要转换的示例XML文件。有384个节点。在这个XML中,我需要制作96个由
组成的节点@i=2
@i=3
@i=26
然后
@i=4
@i=5
@i=28
等等 所以节点中的第三个@i偏移24,例如
<sample input_pos="A01">
<group pos="0">
<Quant1 WellID="A1">98.264</Quant1>
<Quant2 WellID="A2">251.789</Quant2>
<Quant3 WellID="B1">95.073</Quant3>
</group>
</sample>
<sample input_pos="B01">
<group pos="1">
<Quant1 WellID="A5">402.521</Quant1>
<Quant2 WellID="A6">1125.667</Quant2>
<Quant3 WellID="B5">122.02</Quant3>
</group>
</sample>
我已经完成了xslt并且输出不正确。你能帮忙吗?提前谢谢。
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" exclude-result-prefixes="#all"/>
<xsl:param name="GroupSize" select="4"/>
<xsl:param name="PlateSize" select="8"/>
<xsl:template match="Message">
<xsl:apply-templates select="Data/Data"/>
</xsl:template>
<xsl:template match="Data">
<!-- xsl:value-of select="for $n in fn:string-to-codepoints('A') to fn:string-to-codepoints('H') return fn:codepoints-to-string($n)"/ -->
<xsl:variable name="wells" select="R[@i = 2]"/>
<xsl:variable name="numbers" select="R[@i = 3]"/>
<xsl:variable name="plateMap">
<platemap>
<xsl:for-each-group select="R[@i = 3]/C[@i > 1]" group-by="(position() - 1) idiv $GroupSize">
<group>
<xsl:attribute name="pos" select="position() - 1"/>
<xsl:variable name="Quant" select="current-group()"/>
<!-- xsl:sequence select="current-group()[1]"/ -->
<Quant1>
<xsl:attribute name="WellID" select="$wells/C[@i = $Quant[1]/@i]"/>
<!-- xsl:attribute name="WellID" select="$wells/C[@i = ]"/ -->
<xsl:value-of select="current-group()[1]"/>
</Quant1>
<Quant2>
<xsl:attribute name="WellID" select="$wells/C[@i = $Quant[2]/@i]"/>
<xsl:value-of select="current-group()[2]"/>
</Quant2>
<xsl:for-each select="current-group()">
<xsl:if test="position() = 1">
<Quant3>
<xsl:attribute name="WellID" select="$wells/C[@i = ($Quant[1]/@i + 24)]"/>
<xsl:variable name="offset" select="./@i + 24"/>
<xsl:value-of select="$numbers/C[@i = $offset]"/>
</Quant3>
<Quant4>
<xsl:attribute name="WellID" select="$wells/C[@i = ($Quant[1]/@i + 25)]"/>
<xsl:variable name="offset" select="./@i + 25"/>
<xsl:value-of select="$numbers/C[@i = $offset]"/>
</Quant4>
</xsl:if>
</xsl:for-each>
</group>
</xsl:for-each-group>
</platemap>
</xsl:variable>
<platemap>
<xsl:for-each-group select="$plateMap/platemap/group" group-by="(position() - 1) idiv $PlateSize">
<xsl:variable name="groupPos" select="position()"/>
<xsl:variable name="row">A B C D E F G H</xsl:variable>
<xsl:for-each select="current-group()">
<sample>
<xsl:variable name="p" select="position()"/>
<xsl:attribute name="input_pos" select="if($groupPos < 10) then concat(tokenize($row, ' ')[$p], '0', $groupPos) else (concat(tokenize($row, ' ')[$p], $groupPos))"/>
<xsl:copy-of select="."/>
</sample>
</xsl:for-each>
</xsl:for-each-group>
</platemap>
</xsl:template>
</xsl:stylesheet>
输出应该如下所示。该板有384孔,结果应该是96孔,每个有3个结果。
Quant1 Quant2 Quant3
98.264 251.789 95.073
167.377 168.763 167.112
77.255 79.599 73.96
152.114 148.136 140.031
91.622 93.167 95.29
71.646 71.701 72.542
168.188 162.044 170.885
114.21 120.113 118.792
456.882 800.867 121.934
62.233 59.716 62.167
194.109 192.292 192.454
143.53 137.407 145.424
96.578 91.536 93.102
175.094 174.416 175.624
174.282 173.46 177.115
87.466 87.785 83.707
402.521 1125.667 122.02
71.789 73.824 72.51
161.254 161.829 155.221
2.659 2.515 3.787
150.295 144.275 152.096
167.246 168.692 172.031
118.667 121.618 120.573
118.164 117.511 118.586
135.531 144.322 137.248
132 128.993 130.413
83.873 81.339 85.79
123.114 118.523 122.603
131.378 125.119 131.012
170.327 168.509 177.21
110.104 105.967 114.131
118.692 118.782 115.641
96.925 94.017 92.619
122.594 121.069 117.306
65.148 67.914 64.73
190.988 191.066 189.912
125.056 122.41 121.009
231.151 219.915 226.702
124.337 126.589 131.849
121.788 120.187 115.018
94.072 91.234 92.794
88.343 87.554 87.132
124.41 113.577 119.848
我修改了xml更容易 实际上第四个结果没有显示在输出中。 这用于基因测试,其中患者有4口井。但是分析仪只读了3口井。
so
@i=2, @i=3, @i=26, @i=27 in one group
@i=4, @i=5, @i=28, @i=29 in one group
Therefore @i=26, @i=27 and @i=28, @i=29 cannot be in other groups.
如果你看看输出,第一列和第二列是彼此相邻的,但第三列总是离第一列24个位置。 下面是对我的xsl起作用的整个xml。
<?xml version="1.0" encoding="UTF-8"?>
<Message>
<Header>
<Id>ID:172.27.65.115-151c82bbb14-3:0</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2015-12-22</Date>
<Time>06:03:58</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<R i="0">
<C i="0">##BLOCKS= 1</C>
</R>
<R i="1">
<C i="0">Plate:</C>
<C i="1">Plate1</C>
<C i="2">1.3</C>
<C i="3">TimeFormat</C>
<C i="4">Endpoint</C>
<C i="5">Fluorescence</C>
<C i="6">FALSE</C>
<C i="7">Raw</C>
<C i="8">FALSE</C>
<C i="9">1</C>
<C i="10"/>
<C i="11"/>
<C i="12"/>
<C i="13"/>
<C i="14"/>
<C i="15">1</C>
<C i="16">530 </C>
<C i="17">1</C>
<C i="18">24</C>
<C i="19">384</C>
<C i="20">485 </C>
<C i="21">Automatic</C>
<C i="22">530 </C>
<C i="23"/>
<C i="24"/>
<C i="25">6</C>
<C i="26"/>
<C i="27"/>
<C i="28"/>
<C i="29">1</C>
<C i="30">16</C>
<C i="31"/>
<C i="32"/>
</R>
<R i="2">
<C i="0"/>
<C i="1">Temperature(¡C)</C>
<C i="2">A1</C>
<C i="3">A2</C>
<C i="4">A3</C>
<C i="5">A4</C>
<C i="6">A5</C>
<C i="7">A6</C>
<C i="8">A7</C>
<C i="9">A8</C>
<C i="10">A9</C>
<C i="11">A10</C>
<C i="12">A11</C>
<C i="13">A12</C>
<C i="14">A13</C>
<C i="15">A14</C>
<C i="16">A15</C>
<C i="17">A16</C>
<C i="18">A17</C>
<C i="19">A18</C>
<C i="20">A19</C>
<C i="21">A20</C>
<C i="22">A21</C>
<C i="23">A22</C>
<C i="24">A23</C>
<C i="25">A24</C>
<C i="26">B1</C>
<C i="27">B2</C>
<C i="28">B3</C>
<C i="29">B4</C>
<C i="30">B5</C>
<C i="31">B6</C>
<C i="32">B7</C>
<C i="33">B8</C>
<C i="34">B9</C>
<C i="35">B10</C>
<C i="36">B11</C>
<C i="37">B12</C>
<C i="38">B13</C>
<C i="39">B14</C>
<C i="40">B15</C>
<C i="41">B16</C>
<C i="42">B17</C>
<C i="43">B18</C>
<C i="44">B19</C>
<C i="45">B20</C>
<C i="46">B21</C>
<C i="47">B22</C>
<C i="48">B23</C>
<C i="49">B24</C>
<C i="50">C1</C>
<C i="51">C2</C>
<C i="52">C3</C>
<C i="53">C4</C>
<C i="54">C5</C>
<C i="55">C6</C>
<C i="56">C7</C>
<C i="57">C8</C>
<C i="58">C9</C>
<C i="59">C10</C>
<C i="60">C11</C>
<C i="61">C12</C>
<C i="62">C13</C>
<C i="63">C14</C>
<C i="64">C15</C>
<C i="65">C16</C>
<C i="66">C17</C>
<C i="67">C18</C>
<C i="68">C19</C>
<C i="69">C20</C>
<C i="70">C21</C>
<C i="71">C22</C>
<C i="72">C23</C>
<C i="73">C24</C>
<C i="74">D1</C>
<C i="75">D2</C>
<C i="76">D3</C>
<C i="77">D4</C>
<C i="78">D5</C>
<C i="79">D6</C>
<C i="80">D7</C>
<C i="81">D8</C>
<C i="82">D9</C>
<C i="83">D10</C>
<C i="84">D11</C>
<C i="85">D12</C>
<C i="86">D13</C>
<C i="87">D14</C>
<C i="88">D15</C>
<C i="89">D16</C>
<C i="90">D17</C>
<C i="91">D18</C>
<C i="92">D19</C>
<C i="93">D20</C>
<C i="94">D21</C>
<C i="95">D22</C>
<C i="96">D23</C>
<C i="97">D24</C>
<C i="98">E1</C>
<C i="99">E2</C>
<C i="100">E3</C>
<C i="101">E4</C>
<C i="102">E5</C>
<C i="103">E6</C>
<C i="104">E7</C>
<C i="105">E8</C>
<C i="106">E9</C>
<C i="107">E10</C>
<C i="108">E11</C>
<C i="109">E12</C>
<C i="110">E13</C>
<C i="111">E14</C>
<C i="112">E15</C>
<C i="113">E16</C>
<C i="114">E17</C>
<C i="115">E18</C>
<C i="116">E19</C>
<C i="117">E20</C>
<C i="118">E21</C>
<C i="119">E22</C>
<C i="120">E23</C>
<C i="121">E24</C>
<C i="122">F1</C>
<C i="123">F2</C>
<C i="124">F3</C>
<C i="125">F4</C>
<C i="126">F5</C>
<C i="127">F6</C>
<C i="128">F7</C>
<C i="129">F8</C>
<C i="130">F9</C>
<C i="131">F10</C>
<C i="132">F11</C>
<C i="133">F12</C>
<C i="134">F13</C>
<C i="135">F14</C>
<C i="136">F15</C>
<C i="137">F16</C>
<C i="138">F17</C>
<C i="139">F18</C>
<C i="140">F19</C>
<C i="141">F20</C>
<C i="142">F21</C>
<C i="143">F22</C>
<C i="144">F23</C>
<C i="145">F24</C>
<C i="146">G1</C>
<C i="147">G2</C>
<C i="148">G3</C>
<C i="149">G4</C>
<C i="150">G5</C>
<C i="151">G6</C>
<C i="152">G7</C>
<C i="153">G8</C>
<C i="154">G9</C>
<C i="155">G10</C>
<C i="156">G11</C>
<C i="157">G12</C>
<C i="158">G13</C>
<C i="159">G14</C>
<C i="160">G15</C>
<C i="161">G16</C>
<C i="162">G17</C>
<C i="163">G18</C>
<C i="164">G19</C>
<C i="165">G20</C>
<C i="166">G21</C>
<C i="167">G22</C>
<C i="168">G23</C>
<C i="169">G24</C>
<C i="170">H1</C>
<C i="171">H2</C>
<C i="172">H3</C>
<C i="173">H4</C>
<C i="174">H5</C>
<C i="175">H6</C>
<C i="176">H7</C>
<C i="177">H8</C>
<C i="178">H9</C>
<C i="179">H10</C>
<C i="180">H11</C>
<C i="181">H12</C>
<C i="182">H13</C>
<C i="183">H14</C>
<C i="184">H15</C>
<C i="185">H16</C>
<C i="186">H17</C>
<C i="187">H18</C>
<C i="188">H19</C>
<C i="189">H20</C>
<C i="190">H21</C>
<C i="191">H22</C>
<C i="192">H23</C>
<C i="193">H24</C>
<C i="194">I1</C>
<C i="195">I2</C>
<C i="196">I3</C>
<C i="197">I4</C>
<C i="198">I5</C>
<C i="199">I6</C>
<C i="200">I7</C>
<C i="201">I8</C>
<C i="202">I9</C>
<C i="203">I10</C>
<C i="204">I11</C>
<C i="205">I12</C>
<C i="206">I13</C>
<C i="207">I14</C>
<C i="208">I15</C>
<C i="209">I16</C>
<C i="210">I17</C>
<C i="211">I18</C>
<C i="212">I19</C>
<C i="213">I20</C>
<C i="214">I21</C>
<C i="215">I22</C>
<C i="216">I23</C>
<C i="217">I24</C>
<C i="218">J1</C>
<C i="219">J2</C>
<C i="220">J3</C>
<C i="221">J4</C>
<C i="222">J5</C>
<C i="223">J6</C>
<C i="224">J7</C>
<C i="225">J8</C>
<C i="226">J9</C>
<C i="227">J10</C>
<C i="228">J11</C>
<C i="229">J12</C>
<C i="230">J13</C>
<C i="231">J14</C>
<C i="232">J15</C>
<C i="233">J16</C>
<C i="234">J17</C>
<C i="235">J18</C>
<C i="236">J19</C>
<C i="237">J20</C>
<C i="238">J21</C>
<C i="239">J22</C>
<C i="240">J23</C>
<C i="241">J24</C>
<C i="242">K1</C>
<C i="243">K2</C>
<C i="244">K3</C>
<C i="245">K4</C>
<C i="246">K5</C>
<C i="247">K6</C>
<C i="248">K7</C>
<C i="249">K8</C>
<C i="250">K9</C>
<C i="251">K10</C>
<C i="252">K11</C>
<C i="253">K12</C>
<C i="254">K13</C>
<C i="255">K14</C>
<C i="256">K15</C>
<C i="257">K16</C>
<C i="258">K17</C>
<C i="259">K18</C>
<C i="260">K19</C>
<C i="261">K20</C>
<C i="262">K21</C>
<C i="263">K22</C>
<C i="264">K23</C>
<C i="265">K24</C>
<C i="266">L1</C>
<C i="267">L2</C>
<C i="268">L3</C>
<C i="269">L4</C>
<C i="270">L5</C>
<C i="271">L6</C>
<C i="272">L7</C>
<C i="273">L8</C>
<C i="274">L9</C>
<C i="275">L10</C>
<C i="276">L11</C>
<C i="277">L12</C>
<C i="278">L13</C>
<C i="279">L14</C>
<C i="280">L15</C>
<C i="281">L16</C>
<C i="282">L17</C>
<C i="283">L18</C>
<C i="284">L19</C>
<C i="285">L20</C>
<C i="286">L21</C>
<C i="287">L22</C>
<C i="288">L23</C>
<C i="289">L24</C>
<C i="290">M1</C>
<C i="291">M2</C>
<C i="292">M3</C>
<C i="293">M4</C>
<C i="294">M5</C>
<C i="295">M6</C>
<C i="296">M7</C>
<C i="297">M8</C>
<C i="298">M9</C>
<C i="299">M10</C>
<C i="300">M11</C>
<C i="301">M12</C>
<C i="302">M13</C>
<C i="303">M14</C>
<C i="304">M15</C>
<C i="305">M16</C>
<C i="306">M17</C>
<C i="307">M18</C>
<C i="308">M19</C>
<C i="309">M20</C>
<C i="310">M21</C>
<C i="311">M22</C>
<C i="312">M23</C>
<C i="313">M24</C>
<C i="314">N1</C>
<C i="315">N2</C>
<C i="316">N3</C>
<C i="317">N4</C>
<C i="318">N5</C>
<C i="319">N6</C>
<C i="320">N7</C>
<C i="321">N8</C>
<C i="322">N9</C>
<C i="323">N10</C>
<C i="324">N11</C>
<C i="325">N12</C>
<C i="326">N13</C>
<C i="327">N14</C>
<C i="328">N15</C>
<C i="329">N16</C>
<C i="330">N17</C>
<C i="331">N18</C>
<C i="332">N19</C>
<C i="333">N20</C>
<C i="334">N21</C>
<C i="335">N22</C>
<C i="336">N23</C>
<C i="337">N24</C>
<C i="338">O1</C>
<C i="339">O2</C>
<C i="340">O3</C>
<C i="341">O4</C>
<C i="342">O5</C>
<C i="343">O6</C>
<C i="344">O7</C>
<C i="345">O8</C>
<C i="346">O9</C>
<C i="347">O10</C>
<C i="348">O11</C>
<C i="349">O12</C>
<C i="350">O13</C>
<C i="351">O14</C>
<C i="352">O15</C>
<C i="353">O16</C>
<C i="354">O17</C>
<C i="355">O18</C>
<C i="356">O19</C>
<C i="357">O20</C>
<C i="358">O21</C>
<C i="359">O22</C>
<C i="360">O23</C>
<C i="361">O24</C>
<C i="362">P1</C>
<C i="363">P2</C>
<C i="364">P3</C>
<C i="365">P4</C>
<C i="366">P5</C>
<C i="367">P6</C>
<C i="368">P7</C>
<C i="369">P8</C>
<C i="370">P9</C>
<C i="371">P10</C>
<C i="372">P11</C>
<C i="373">P12</C>
<C i="374">P13</C>
<C i="375">P14</C>
<C i="376">P15</C>
<C i="377">P16</C>
<C i="378">P17</C>
<C i="379">P18</C>
<C i="380">P19</C>
<C i="381">P20</C>
<C i="382">P21</C>
<C i="383">P22</C>
<C i="384">P23</C>
<C i="385">P24</C>
<C i="386"/>
</R>
<R i="3">
<C i="0"/>
<C i="1">23.6</C>
<C i="2">98.264</C>
<C i="3">251.789</C>
<C i="4">456.882</C>
<C i="5">800.867</C>
<C i="6">402.521</C>
<C i="7">1125.667</C>
<C i="8">135.531</C>
<C i="9">144.322</C>
<C i="10">96.925</C>
<C i="11">94.017</C>
<C i="12">94.072</C>
<C i="13">91.234</C>
<C i="14">180.945</C>
<C i="15">183.039</C>
<C i="16">191.258</C>
<C i="17">182.408</C>
<C i="18">144.162</C>
<C i="19">143.01</C>
<C i="20">122.132</C>
<C i="21">121.403</C>
<C i="22">108.347</C>
<C i="23">109.258</C>
<C i="24">96.023</C>
<C i="25">88.534</C>
<C i="26">95.073</C>
<C i="27">0.649</C>
<C i="28">121.934</C>
<C i="29">0.624</C>
<C i="30">122.02</C>
<C i="31">0.621</C>
<C i="32">137.248</C>
<C i="33">0.593</C>
<C i="34">92.619</C>
<C i="35">0.594</C>
<C i="36">92.794</C>
<C i="37">0.532</C>
<C i="38">173.682</C>
<C i="39">0.634</C>
<C i="40">188.073</C>
<C i="41">0.665</C>
<C i="42">143.844</C>
<C i="43">0.531</C>
<C i="44">123.746</C>
<C i="45">0.49</C>
<C i="46">110.686</C>
<C i="47">1181.821</C>
<C i="48">94.908</C>
<C i="49">1164.705</C>
<C i="50">167.377</C>
<C i="51">168.763</C>
<C i="52">62.233</C>
<C i="53">59.716</C>
<C i="54">71.789</C>
<C i="55">73.824</C>
<C i="56">132</C>
<C i="57">128.993</C>
<C i="58">122.594</C>
<C i="59">121.069</C>
<C i="60">88.343</C>
<C i="61">87.554</C>
<C i="62">198.365</C>
<C i="63">197.994</C>
<C i="64">150.214</C>
<C i="65">148.682</C>
<C i="66">140.835</C>
<C i="67">138.233</C>
<C i="68">115.757</C>
<C i="69">120.408</C>
<C i="70">64.649</C>
<C i="71">61.181</C>
<C i="72">149.933</C>
<C i="73">147.349</C>
<C i="74">167.112</C>
<C i="75">0.607</C>
<C i="76">62.167</C>
<C i="77">0.623</C>
<C i="78">72.51</C>
<C i="79">0.572</C>
<C i="80">130.413</C>
<C i="81">0.715</C>
<C i="82">117.306</C>
<C i="83">0.664</C>
<C i="84">87.132</C>
<C i="85">0.607</C>
<C i="86">184.891</C>
<C i="87">0.525</C>
<C i="88">147.11</C>
<C i="89">0.595</C>
<C i="90">138.467</C>
<C i="91">0.466</C>
<C i="92">113.852</C>
<C i="93">0.539</C>
<C i="94">62.061</C>
<C i="95">577.213</C>
<C i="96">147.381</C>
<C i="97">590.206</C>
<C i="98">77.255</C>
<C i="99">79.599</C>
<C i="100">194.109</C>
<C i="101">192.292</C>
<C i="102">161.254</C>
<C i="103">161.829</C>
<C i="104">83.873</C>
<C i="105">81.339</C>
<C i="106">65.148</C>
<C i="107">67.914</C>
<C i="108">124.41</C>
<C i="109">113.577</C>
<C i="110">134.341</C>
<C i="111">136.857</C>
<C i="112">100.75</C>
<C i="113">101.41</C>
<C i="114">138.315</C>
<C i="115">129.187</C>
<C i="116">123.967</C>
<C i="117">120.578</C>
<C i="118">128.607</C>
<C i="119">123.604</C>
<C i="120">103.337</C>
<C i="121">101.19</C>
<C i="122">73.96</C>
<C i="123">0.609</C>
<C i="124">192.454</C>
<C i="125">0.621</C>
<C i="126">155.221</C>
<C i="127">0.608</C>
<C i="128">85.79</C>
<C i="129">0.614</C>
<C i="130">64.73</C>
<C i="131">0.641</C>
<C i="132">119.848</C>
<C i="133">0.674</C>
<C i="134">125.276</C>
<C i="135">0.519</C>
<C i="136">104.841</C>
<C i="137">0.609</C>
<C i="138">124.135</C>
<C i="139">0.465</C>
<C i="140">113.366</C>
<C i="141">0.55</C>
<C i="142">122.447</C>
<C i="143">289.283</C>
<C i="144">99.958</C>
<C i="145">271.073</C>
<C i="146">152.114</C>
<C i="147">148.136</C>
<C i="148">143.53</C>
<C i="149">137.407</C>
<C i="150">2.659</C>
<C i="151">2.515</C>
<C i="152">123.114</C>
<C i="153">118.523</C>
<C i="154">190.988</C>
<C i="155">191.066</C>
<C i="156">154.226</C>
<C i="157">148.165</C>
<C i="158">145.032</C>
<C i="159">146.482</C>
<C i="160">163.162</C>
<C i="161">156.53</C>
<C i="162">145.554</C>
<C i="163">145.283</C>
<C i="164">65.665</C>
<C i="165">62.949</C>
<C i="166">99.253</C>
<C i="167">91.244</C>
<C i="168">48.438</C>
<C i="169">45.38</C>
<C i="170">140.031</C>
<C i="171">0.585</C>
<C i="172">145.424</C>
<C i="173">0.512</C>
<C i="174">3.787</C>
<C i="175">0.659</C>
<C i="176">122.603</C>
<C i="177">0.639</C>
<C i="178">189.912</C>
<C i="179">0.735</C>
<C i="180">157.703</C>
<C i="181">0.558</C>
<C i="182">147.808</C>
<C i="183">0.539</C>
<C i="184">160.831</C>
<C i="185">0.576</C>
<C i="186">147.555</C>
<C i="187">0.516</C>
<C i="188">67.191</C>
<C i="189">0.653</C>
<C i="190">97.93</C>
<C i="191">130.585</C>
<C i="192">49.309</C>
<C i="193">158.39</C>
<C i="194">91.622</C>
<C i="195">93.167</C>
<C i="196">96.578</C>
<C i="197">91.536</C>
<C i="198">150.295</C>
<C i="199">144.275</C>
<C i="200">131.378</C>
<C i="201">125.119</C>
<C i="202">125.056</C>
<C i="203">122.41</C>
<C i="204">100.353</C>
<C i="205">94.315</C>
<C i="206">121.948</C>
<C i="207">117.204</C>
<C i="208">85.205</C>
<C i="209">79.883</C>
<C i="210">257.075</C>
<C i="211">246.279</C>
<C i="212">150.535</C>
<C i="213">144.671</C>
<C i="214">93.615</C>
<C i="215">93.532</C>
<C i="216">68.383</C>
<C i="217">67.617</C>
<C i="218">95.29</C>
<C i="219">0.651</C>
<C i="220">93.102</C>
<C i="221">0.634</C>
<C i="222">152.096</C>
<C i="223">0.499</C>
<C i="224">131.012</C>
<C i="225">0.564</C>
<C i="226">121.009</C>
<C i="227">0.649</C>
<C i="228">102.785</C>
<C i="229">0.59</C>
<C i="230">123.703</C>
<C i="231">0.528</C>
<C i="232">81.6</C>
<C i="233">0.628</C>
<C i="234">252.208</C>
<C i="235">0.617</C>
<C i="236">151.216</C>
<C i="237">0.548</C>
<C i="238">90.711</C>
<C i="239">69.885</C>
<C i="240">70.239</C>
<C i="241">71.025</C>
<C i="242">71.646</C>
<C i="243">71.701</C>
<C i="244">175.094</C>
<C i="245">174.416</C>
<C i="246">167.246</C>
<C i="247">168.692</C>
<C i="248">170.327</C>
<C i="249">168.509</C>
<C i="250">231.151</C>
<C i="251">219.915</C>
<C i="252">149.652</C>
<C i="253">139.74</C>
<C i="254">132.163</C>
<C i="255">131.629</C>
<C i="256">140.055</C>
<C i="257">134.353</C>
<C i="258">292.647</C>
<C i="259">290.752</C>
<C i="260">111.424</C>
<C i="261">109.553</C>
<C i="262">137.33</C>
<C i="263">129.825</C>
<C i="264">134.908</C>
<C i="265">130.149</C>
<C i="266">72.542</C>
<C i="267">0.647</C>
<C i="268">175.624</C>
<C i="269">0.577</C>
<C i="270">172.031</C>
<C i="271">0.629</C>
<C i="272">177.21</C>
<C i="273">0.482</C>
<C i="274">226.702</C>
<C i="275">0.62</C>
<C i="276">149.755</C>
<C i="277">0.6</C>
<C i="278">131.32</C>
<C i="279">0.699</C>
<C i="280">135.922</C>
<C i="281">0.705</C>
<C i="282">277.712</C>
<C i="283">0.555</C>
<C i="284">111.465</C>
<C i="285">0.562</C>
<C i="286">133.361</C>
<C i="287">32.306</C>
<C i="288">137.097</C>
<C i="289">29.724</C>
<C i="290">168.188</C>
<C i="291">162.044</C>
<C i="292">174.282</C>
<C i="293">173.46</C>
<C i="294">118.667</C>
<C i="295">121.618</C>
<C i="296">110.104</C>
<C i="297">105.967</C>
<C i="298">124.337</C>
<C i="299">126.589</C>
<C i="300">114.919</C>
<C i="301">115.438</C>
<C i="302">126.04</C>
<C i="303">125.081</C>
<C i="304">484.342</C>
<C i="305">481.306</C>
<C i="306">92.588</C>
<C i="307">87.08</C>
<C i="308">209.826</C>
<C i="309">202.772</C>
<C i="310">118.595</C>
<C i="311">116.3</C>
<C i="312">114.16</C>
<C i="313">110.568</C>
<C i="314">170.885</C>
<C i="315">0.564</C>
<C i="316">177.115</C>
<C i="317">0.805</C>
<C i="318">120.573</C>
<C i="319">0.852</C>
<C i="320">114.131</C>
<C i="321">0.452</C>
<C i="322">131.849</C>
<C i="323">0.685</C>
<C i="324">115.961</C>
<C i="325">0.65</C>
<C i="326">122.13</C>
<C i="327">0.582</C>
<C i="328">479.514</C>
<C i="329">0.683</C>
<C i="330">91.153</C>
<C i="331">0.59</C>
<C i="332">213.814</C>
<C i="333">0.644</C>
<C i="334">117.526</C>
<C i="335">18.166</C>
<C i="336">118.224</C>
<C i="337">23.834</C>
<C i="338">114.21</C>
<C i="339">120.113</C>
<C i="340">87.466</C>
<C i="341">87.785</C>
<C i="342">118.164</C>
<C i="343">117.511</C>
<C i="344">118.692</C>
<C i="345">118.782</C>
<C i="346">121.788</C>
<C i="347">120.187</C>
<C i="348">164.791</C>
<C i="349">164.182</C>
<C i="350">211.596</C>
<C i="351">212.938</C>
<C i="352">228.976</C>
<C i="353">228.836</C>
<C i="354">213.659</C>
<C i="355">198.626</C>
<C i="356">60.412</C>
<C i="357">58.416</C>
<C i="358">65.667</C>
<C i="359">61.491</C>
<C i="360">3.274</C>
<C i="361">3.254</C>
<C i="362">118.792</C>
<C i="363">0.576</C>
<C i="364">83.707</C>
<C i="365">0.659</C>
<C i="366">118.586</C>
<C i="367">0.411</C>
<C i="368">115.641</C>
<C i="369">0.618</C>
<C i="370">115.018</C>
<C i="371">0.55</C>
<C i="372">160.197</C>
<C i="373">0.654</C>
<C i="374">214.499</C>
<C i="375">0.609</C>
<C i="376">236.077</C>
<C i="377">0.539</C>
<C i="378">192.757</C>
<C i="379">0.541</C>
<C i="380">60.444</C>
<C i="381">0.555</C>
<C i="382">64.835</C>
<C i="383">1.722</C>
<C i="384">3.501</C>
<C i="385">1.658</C>
<C i="386"/>
</R>
</Data>
</Data>
<Attachments>
<Attachment Encoding="base64" Location="element" Name="labcorp.txt"/>
</Attachments>
</Message>
答案 0 :(得分:2)
我建议采用完全不同的方法对节点进行分组:
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="R">
<xsl:variable name="C" select="C" />
<root>
<xsl:for-each select="1 to 96">
<sample>
<group pos="{current()}">
<Quant1 WellID="?">
<xsl:value-of select="$C[@i = 2 * current()]"/>
</Quant1>
<Quant2 WellID="?">
<xsl:value-of select="$C[@i = 2 * current() + 1]"/>
</Quant2>
<Quant3 WellID="?">
<xsl:value-of select="$C[@i = 2 * current() + 24]"/>
</Quant3>
</group>
</sample>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
应用于您的示例,结果将是:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<sample>
<group pos="1">
<Quant1 WellID="?">98.264</Quant1>
<Quant2 WellID="?">251.789</Quant2>
<Quant3 WellID="?">95.073</Quant3>
</group>
</sample>
<sample>
<group pos="2">
<Quant1 WellID="?">456.882</Quant1>
<Quant2 WellID="?">800.867</Quant2>
<Quant3 WellID="?">121.934</Quant3>
</group>
</sample>
...
<sample>
<group pos="96">
<Quant1 WellID="?">49.309</Quant1>
<Quant2 WellID="?">158.39</Quant2>
<Quant3 WellID="?">68.383</Quant3>
</group>
</sample>
</root>
请注意,这与您问题中显示的输出示例不同 - 但正确的是,第二组显示来自C
元素的值,其中@ i = 4,@ i = 5和@ i = 28。< / p>
我建议您发布有关我的输出中当前缺少的其他属性的单独问题。