私は XSL スタイルシートにかなり慣れていないので、ここで我慢してください。
.xsl に C# ブロックが埋め込まれています。数字の文字列(例:「1,3,5」)を受け取るものが必要なため、そこにあります。「、」の数字にしたい。コード ブロックは XSL ループの一部であるため、それがどの反復にあるかを渡し、その番号を文字列を介して入ってきたリストと比較します。反復回数がリストにある場合、true を返します。そうでない場合は、False を返します。文字列は「all」として受け取ることもできます。その場合、true を返します。
これは私が思いついたものです:
<msxsl:script language="c#" implements-prefix="user">
<![CDATA[
public bool showStoryImg(string desiredImgs, int currentNum){
bool rtnVal = false;
try
{
if (desiredImgs == "all")
{
rtnVal = true;
}
else
{
string[] numStrArr = desiredImgs.Split(',');
int[] values = new int[numStrArr.Length];
for(int x = 0; x < numStrArr.Length; x++)
{
values[x] = Convert.ToInt32(numStrArr[x].ToString());
}
foreach(int y in values)
{
if(currentNum == y){
return true;
}
else
{
rtnVal = false;
}
}
}
}
catch(Exception e)
{
rtnVal = false;
}
return rtnVal;
}
]]>
</msxsl:script>
しかし、私の問題は、XSL には .NET ライブラリを使用する方法がないため、このコードが機能しないことです。これについてどうすればよいかについて何か提案はありますか?