「位置」で「番号」の値を並べ替えるか、最初にT.number値のXML文書に入って表示したいと思います。これを行う方法はありますか?ここでXSLノードの位置で番号を並べ替える
は私のXML文書である
<?xml version="1.0" encoding="UTF-8"?>
<JobList>
<Job ID="2" />
<Job ID="3" />
<Job ID="5" />
<Job ID="4" />
<Job ID="6" />
<Job T.number="28" />
<Job T.number="10" />
<Job T.number="24" />
<Job T.number="75" />
<Job T.number="75" />
<Tool number="10" />
<Tool number="24" />
<Tool number="28" />
<Tool number="75" />
<Tool number="75" />
</JobList>
望ましい結果:
<?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-US</xsl:param>
<xsl:param name="FORMAT">html</xsl:param>
<xsl:param name="CAPTURE">example,job</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>Joblist Report</title>
<style type="text/css">
body {font-family: Arial;}
</style>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="JobList">
<div>
<table width="100" border="1">
<thead>
<tr>
<td>
<xsl:value-of select="Sorted Numbers" />
</td>
</tr>
</thead>
<tbody>
<xsl:variable name="vsortOrder" select="//Job[@T.number]" />
<xsl:for-each select="Tool">
<xsl:sort select="@number" order="{$vsortOrder}" data-type="number" />
<tr>
<td>
<xsl:value-of select="@number" />
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
UPDATE:私は同じを持っている属性を発見した。ここ
<?xml version="1.0" encoding="UTF-8"?>
<JobList>
<Job ID="2" />
<Job ID="3" />
<Job ID="5" />
<Job ID="4" />
<Job ID="6" />
<Tool number="28" />
<Tool number="10" />
<Tool number="24" />
<Tool number="75" />
</JobList>
は、XSL文書であります私が必要とする注文番号。私はその属性でXMLを更新しました。しかし、XSLはまだそれを並べ替えることはありません。
必要な変換の背景にある論理を説明してください。 –
ロジックは、ユーザーが操作の順にツーリングを作成するためのものです。 XSLがアクセントまたはディケンディングによって組織化するとき、それはツールが実行する順序ではなく、次に何が来るのかを知ることをより困難にします。 –
私はあなたが私の質問を誤解してしまうのではないかと心配しています。なぜ最初に28、10秒、24秒、そして75が最後になるのかを説明してください。 1つは**ルール**はここで適用する必要がありますか? –