我们如何从 Xslt 中的静态类访问静态方法?静态类已在程序集中定义。
这是我要参考的静态类的定义
namespace Helper
{
public static class StaticXsltHelper
{
public static double CalclutePerctange(int a, int b)
{
return b == 0 ? 0 : ((double)a * 100) / b;
}
}
}
我们如何StaticXsltHelper.CalclutePerctange
在 Xslt 中引用方法?
对于非静态类和非静态方法,我可以使用以下语法
XslCompiledTransform t = new XslCompiledTransform();
XsltArgumentList l = new XsltArgumentList();
l.AddExtensionObject("a:b", new XsltHelper());
t.Load("XSLTFile.xslt", new XsltSettings(true, true), null);
using (StreamWriter w = new StreamWriter("XMLFileOut.xml"))
{
t.Transform("XMLFile.xml", l, w);
}
这是 XsltHelper 类的定义
namespace Helper
{
public class XsltHelper
{
public double CalclutePerctange(int a, int b)
{
return b == 0 ? 0 : ((double)a * 100) / b;
}
}
}
xslt 看起来像
<xsl:stylesheet version="1.0" xmlns:prefix_1="http://www.w3.org/2001/XMLSchema-instance" xmlns:helper="a:b" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:for-each select="Entity">
<Entity>
<Percent>
<xsl:value-of select="helper:CalclutePerctange(Value, Total)"/>
</Percent>
但我没有找到任何关于静态方法的信息。
任何形式的帮助/评论将不胜感激。另外我想知道这是否可能。