如何格式化/缩进XSL转换的输出

Rob*_*ben 5 xml xslt serialization pretty-print

我想输出一段html代码.但我需要它是漂亮的印刷/缩进.没有使用<xsl:text>&#xa;</xsl:text>和有没有办法做到这一点<xsl:text>&#9;</xsl:text>

我使用了以下行没有任何结果.

<xsl:output method="html" indent="yes"/>
Run Code Online (Sandbox Code Playgroud)

Follwoing是c#代码;

    XslCompiledTransform XSLT = new XslCompiledTransform();
    XSLT.Load(xslPath);

    using (XmlTextWriter writer = new XmlTextWriter(writePath, null))
    {
        if (isTopLevel)
        {
            XSLT.Transform(XMLDocumentForCurrentUser, writer);
        }
        else
        {
            XsltArgumentList xslArg = new XsltArgumentList();
            xslArg.AddParam("MenuIndex", "", menuIndex);
            XSLT.Transform(XMLDocumentForCurrentUser, xslArg, writer);
        }
    }
 // I write the output to file  
//All this works fine, only now I need the HTML to be readable (in the browser's view source or any notepad)
Run Code Online (Sandbox Code Playgroud)

有没有人知道格式化(至少缩进)XSLT输出的方法?

Mar*_*nen 7

如果希望XSLT处理器应用xsl:output指令,请不要创建自己的XmlTextWriter.而是直接写入文件或创建XmlWriter,如下所示:

using (XmlWriter result = XmlWriter.Create(writePath, XSLT.OutputSettings))
{
        if (isTopLevel)
        {
            XSLT.Transform(XMLDocumentForCurrentUser, result);
        }
        else
        {
            XsltArgumentList xslArg = new XsltArgumentList();
            xslArg.AddParam("MenuIndex", "", menuIndex);
            XSLT.Transform(XMLDocumentForCurrentUser, xslArg, result);
        }
}
Run Code Online (Sandbox Code Playgroud)