for-eachループの外側にある要素にアクセスしようとして問題が発生しています。ここに私のXMLがあります。で、私は "//Tool/sta.time" の値を表示しようとしていますaccess external要素for a eachの内部
<div>
<h1>
<table width="100%" border="1">
<thead>
<tr>
<td>Numbers</td>
<td>Description</td>
<td>Holder</td>
<td>Time</td>
</tr>
</thead>
<tbody>
<tr>
<td>7</td>
<td>Tool</td>
<td>Holder</td>
<td>0.59</td>
</tr>
<tr>
<td>5</td>
<td>Second</td>
<td>secholder</td>
<td>1.93</td>
</tr>
</tbody>
</table>
</h1>
</div>
:ここ
<JobList sta.time="151.879">
<Job T.number="7" T.identifier="Tool" T.holder.comment="Holder" sta.time="30.789" />
<Job T.number="5" T.identifier="Second" T.holder.comment="secholder" sta.time="35.567" />
<Job T.number="7" T.identifier="Tool" T.holder.comment="Holder" sta.time="4.778" />
<Job T.number="5" T.identifier="Second" T.holder.comment="secholder" sta.time="80.745" />
<Tool sta.time="116.312" number="5" />
<Tool sta.time="35.567" number="7" />
</JobList>
は私のXSLのエキス
<table width="100%" border="1">
<thead>
<tr>
<td>Numbers</td>
<td>Description</td>
<td>Holder</td>
<td>Time</td>
</tr>
</thead>
<tbody>
<xsl:variable name="vsortOrder" select="//Job[@T.number]" />
<xsl:for-each select="//Job[not(@T.number=preceding::Job/@T.number)]">
<tr>
<td>
<xsl:value-of select="@T.number" />
</td>
<td>
<xsl:value-of select="@T.identifier" />
</td>
<td>
<xsl:value-of select="@T.holder.comment" />
</td>
</xsl:for-each>
<xsl:for-each select="//Tool[$vsortOrder/Job/@T.number]">
<td>
<xsl:value-of select="format-number(@sta.time div 60,'#0.00')" />
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
所望の出力であります@ T.numberと同じオーダー。どのように私はこれを行う/任意のアイデアは、これを構造化?
恐らく、 '/'の過度の使用、 '' xsl:for-each'の多すぎる組み合わせ、 ''先行する兄弟:: 'の代わりに' '::' 'を使うこと。 XSLTの変更を提案できるように、希望する出力を追加できますか? –
希望の結果に追加しました。 –
あなたの結果は意味をなさない: 'T.number = 7'にリンクされた' sta.time'値は35.567で、60で除算すると0.59を生成します。しかし、T.number = 5の行には0.59が表示されます.0.84の値はどこから来たのですか? –