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>
しかし、静的メソッドについては何も見つかりませんでした。
あらゆる種類のヘルプ/コメントをいただければ幸いです。また、これが可能かどうかも知りたいです。