Я новичок в таблицах стилей XSL, так что потерпите меня здесь.
У меня есть встроенный блок С# в моем .xsl. Это потому, что мне нужно что-то, что будет принимать строку чисел (например: "1,3,5"). Я хочу, чтобы это были цифры на ','. Блок кода является частью цикла XSL, поэтому он передает, на какой итерации он находится, и сравнивает это число со списком, полученным через строку. Если счетчик итераций есть в списке, верните true. Если это не так, верните False. Строка также может быть указана как «все», и в этом случае просто верните 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, поэтому этот код не работает. Есть ли какие-либо предложения относительно того, как я должен это сделать?