我在我的 .NET (C#) 项目中使用 XSLT。我想知道是否可以在 XSLT 模板内部检查是否在 (add to) 中定义了扩展对象XsltArgumentList
。
XSLT 命名空间声明
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:info="urn:info">
C# 代码
public string Render(XElement xml, IInfo info) {
XsltArgumentList arguments = new XsltArgumentList();
if(info != null)
arguments.AddExtensionObject("urn:info", info);
var writterSettings = GetWritterSettings(); //omitted details just for simplicity
var xslt = CreateXslCompiledTransform(); //omitted details just for simplicity
StringBuilder sb = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(sb, writerSettings))
{
using (var itemReader = xml.CreateReader())
{
xslt.Transform(itemReader, xsltArguments, writer);
}
}
return sb.ToString();
}
在 XSLT 模板中,我想在扩展对象不为空时对它做一些事情,而在它为空时做一些其他事情。XSLT 是否有一些特殊的标记或语法来完成此操作,或者根本不可能?