私は表示したい属性を持っていますが、 " - "で示される最後の部分のみを表示したいとします。私はこれを行うにはsubstring-afterを使用していますが、これは1つの文字がある場合のみ動作します。場合によっては2つの場合があります。私はこのためのいくつかの再帰的なテンプレートを見てきましたが、私はここでそれを持っているように、For-eachループでそれらを見ていないと私は私のXSLドキュメント内のすべてを置くだろうか分からない。特定の文字の後のXSL表示属性
<?xml version="1.0" encoding="UTF-8"?>
<JobList>
<Job T.number="28" />
<Job T.identifier="10mm Drill" />
<Job oper.jobName="2: T28-Contour Milling - Grind me back" />
<Job T.number="3" />
<Job T.identifier="9mm Drill" />
<Job oper.jobName="3: T3 Contour Milling" />
</JobList>
はここに私のXSLドキュメントです:
は、ここに私のXML文書です。私はXSL 1.0を使用しています。私が探している結果は、「10mm Drill-Grind me back」ではなく、「10mm Drill-Contour Milling - Grind me back」ではなく、同じ結果。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" encoding="UTF-8" method="xml" />
<xsl:param name="REPORT">joblist</xsl:param>
<xsl:param name="LOCALE">en-GB</xsl:param>
<xsl:param name="FORMAT">html</xsl:param>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Tool Report</title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="JobList">
<div style="font-size:;">
<table width="100%" style="margin-bottom:50px;font:bold 10px arial;">
<thead>
<tr>
<th style="text-align:center;font-family:Arial;font-size:13;font:bold 7px arial;">
<xsl:value-of select="@month">
</xsl:value-of>
<span>.</span>
<xsl:value-of select="@day">
</xsl:value-of>
<span>.</span>
<xsl:value-of select="@year">
</xsl:value-of>
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center;font:normal 7px arial;font-size:12px;">
<xsl:value-of select="//Job[position()=1]/@cfg.JOBLISTNAME" />
<span>
</span>
<span>
</span>
</td>
</tr>
</tbody>
<table width="100%" border="1" style="margin-bottom:50px;font:13px arial;">
<thead style="font:19;">
<tr style="font-size:19;">
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
<td style="text-align:center;font-weight:bold;font-size:19;">
</td>
</tr>
</thead>
<tbody style="font-size:19;">
<xsl:for-each select="//Job[not(@T.number=preceding::Job/@T.number)]">
<tr style="font-size:19;">
<td style="font-size:19;">
<xsl:value-of select="@T.number" />
</td>
<td>
</td>
<td style="font-size:19;">
<xsl:value-of select="@T.identifier" />
<xsl:choose>
<xsl:when test="contains(@T.toolComment3, 'GRIND') or contains(@T.toolComment3, 'Grind')">
<xsl:value-of select="@T.toolComment3" />
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="contains(@T.comment2, 'GRIND') or contains(@T.comment2, 'Grind')">
<xsl:value-of select="@T.comment2" />
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="contains(@oper.jobName, 'GRIND') or contains(@oper.jobName, 'Grind')">
<xsl:value-of select="substring-after(@oper.jobName, '-')" />
</xsl:when>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
? –
Microsoft MSXML –