私のデータモデルは次のとおりです。私はここに与えられた答えは使用してみました次のようにXMLレコードで最新の日付を取得します
<Club>
<Captain>
<Name></Name>
<DateOfBirth>15-01-1985</DateOfBirth>
</Captain>
<PlayingStaff>
<Player>
<DateOfBirth>14-01-1993</DateOfBirth>
</Player>
<Player>
<DateOfBirth>07-12-1975</DateOfBirth>
</Player>
<Player>
<DateOfBirth>11-11-1991</DateOfBirth>
</Player>
</PlayingStaff>
</Club>
:XSLT: Getting the latest dateをしかし、それは私に任意の値を与えてイマイチ。
私は一番若いプレーヤーに外部機能を渡そうとしています。次のように
私は私がこれまでXSLT1
に私の仕事を固執する必要がありのBizTalkでこれをやっているのです:
<xsl:variable name="youngestPlayer">
<xsl:for-each select="$ClubRoot/*[local-name()='PlayingStaff']/*[local-name()='Player']">
<xsl:sort select="./*[local-name()='DateOfBirth']" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="DateOfBirth"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="IsYoungestPlayerUnderAgeLimit" select="externalfunctionreturningboolean">
<xsl:element name="blahhh"><xsl:value-of select="$IsYoungestPlayerUnderAgeLimit"/></xsl:element>
<xsl:element name="blahhh"><xsl:value-of select="$youngestPlayer"/></xsl:element>
これは大テンプレートの一部である - 私は本当にすることができますこれを変更するが、根こぶ病の値は、「私はその子ノードを読み取ることができます確保するための<xsl:variable name="ClubRoot" select="/*[1]"/>"
です。
私はいつも
<blahhh>false</blahhh>
<blahhh/>
01を取得しています
私のデバッグ値として...私は期待した値を拾いません
誰かが間違っていた場所を強調表示できますか?
上記のデータから、私はyoungestPlayer変数に14-01-1993という値があると思います。しかし、その空白。
であることを推測してきた、あなたは、XSLの数を減らすことができます。ソート3から1までの命令、そして 'xsl:sort/@ select expression'を単純化します。 –