2014-05-16 70 views
0

在Visual Studio 2012中,當我使用內置的XML調試器運行XML轉換時,它將評論輸出到輸出中。但是當我從C#代碼運行轉換時,它根本不打印註釋。瘋狂讓我成真。<xsl:comment>沒有出現在我的輸出中

<xsl:comment>hi there</xsl:comment> 

XslCompiledTransform xslt = new XslCompiledTransform(true); 
xslt.Load(xsltFile.FullName); 
using (StreamWriter sw = new StreamWriter(tempFile.FullName)) 
{ 
    xslt.Transform(inputFile.FullName, xsltArgs, sw); 
} 

回答

0

您需要訂閱XsltMessageEncountered事件的XsltArgumentList類型。

而不是使用xsl:comment標記,而是使用xsl:message標記。

xsltArgs.XsltMessageEncountered += (o,e) => { Console.WriteLine(e); }; 

XslCompiledTransform xslt = new XslCompiledTransform(true); 
xslt.Load(xsltFile.FullName); 
using (StreamWriter sw = new StreamWriter(tempFile.FullName)) 
{ 
    xslt.Transform(inputFile.FullName, xsltArgs, sw); 
} 
+0

對不起 - 我想通了。在我的C#代碼中,我正在進行第二次轉換,即刪除註釋。 : -/ –

+0

有趣的tho ...似乎是一種調試技術。我看不出我如何使用它來將XML註釋寫入輸出。 –

+0

@ phil.hadley沒有probs,作爲回答或編輯你的問題,雖然我不認爲我回答你的問題 – ywm