gpt4 book ai didi

c# - 将字符串解析为 int,XSL 样式表中的 C#

转载 作者:行者123 更新时间:2023-11-30 22:26:08 25 4
gpt4 key购买 nike

我对 XSL 样式表比较陌生,所以请多多包涵。

我的 .xsl 中有一个嵌入式 C# block 。它在那里是因为我需要一些可以接受一串数字的东西(例如:“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 库,因此这段代码不起作用。关于我应该如何处理这件事,有什么建议吗?

最佳答案

根本不需要扩展功能!

这个转换:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:param name="pImages" select="'1,3,5'"/>

<xsl:variable name="vImages" select="concat(',',$pImages, ',')"/>

<xsl:template match="/*">
<xsl:apply-templates select=
"img[contains($vImages, concat(',',position(),','))]/@src"/>
</xsl:template>
</xsl:stylesheet>

应用于以下 XML 文档时(问题中未提供!):

<images>
<img src="Image1.jpg"/>
<img src="Image2.jpg"/>
<img src="Image3.jpg"/>
<img src="Image4.jpg"/>
<img src="Image5.jpg"/>
</images>

只处理在 $pImages 参数中指定位置的元素——在这种情况下只输出它们的 src 属性:

Image1.jpgImage3.jpgImage5.jpg

关于c# - 将字符串解析为 int,XSL 样式表中的 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com