.net System.Xml.Xsl:如何将Xsl:message元素生成的输出重定向到跟踪侦听器?
我知道.net System.Xml.Xsl:如何将Xsl:message元素生成的输出重定向到跟踪侦听器?,.net,xslt,.net,Xslt,我知道Console.SetOut,但不知道应该传递给此方法什么。Console.SetOut将为控制台输出设置流。 使用XsltMessageEncountered类的XsltArgumentList事件,并使用Trace.write将消息写入跟踪列表 void TestTransform() { XsltArgumentList xsltargs = new XsltArgumentList(); xsltargs.XsltMessageEncountered += new
Console.SetOut
,但不知道应该传递给此方法什么。Console.SetOut
将为控制台输出设置流。
使用XsltMessageEncountered
类的XsltArgumentList
事件,并使用Trace.write
将消息写入跟踪列表
void TestTransform()
{
XsltArgumentList xsltargs = new XsltArgumentList();
xsltargs.XsltMessageEncountered += new XsltMessageEncounteredEventHandler(OnXsltMessageEncountered);
XslCompiledTransform transform = new XslCompiledTransform();
//....some code to load xslt and other stuffs. Pass the xsltargs to transform
}
void OnXsltMessageEncountered(object sender, XsltMessageEncounteredEventArgs e)
{
//write the message to Trace.
Trace.Write(e.Message);
}
是的,我已经找到了这个解决方案。这仅由XslCompiledTransform支持。Console.SetOut是使用XslTransform执行此操作的唯一方法。这是特定于XSLT处理器的。XSLT语言中没有强制执行这一点的内容。这就是为什么
xsltprocessor
标记,尽管如果没有在标记wiki中进行解释,它的含义还不够明显。根据经验,如果问题或答案包含任何对XSLT指令的引用,那么它就不是一个XSLT问题。我的问题引用了xsl:message!:)