for-each 루프 외부의 요소에 액세스하는 데 문제가 있습니다. 여기 내 XML이있다. 여기 access external 요소 for each each 내부
<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>
원하는 출력 :
<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>
난에서 "//Tool/sta.time"의 값을 표시하는 것을 시도하고있다 @ T.number와 같은 순서. 어떤 생각을 어떻게 할 것인가/이것을 구조화 할 것인가?
아마도'/'의 과용과''xsl : for-each'의 조합,''preceding-sibling ::'대신''preceding ::'를 사용하는 것입니다. 몇 가지 XSLT 변경 사항을 제안 할 수 있도록 원하는 출력을 추가 할 수 있습니까? –
내가 원하는 결과에 추가했습니다. –
결과가 의미가 없습니다. 'T.number = 7'에 연결된'sta.time '값은 35.567이며, 60으로 나눈 값은 0.59입니다. 그러나 T.number = 5 인 행에 0.59을 표시합니다. 그리고 0.84의 값은 어디에서 왔습니까? –