Как отформатировать / сделать отступ для преобразования XSL - PullRequest
5 голосов
/ 29 ноября 2010

Я пытаюсь вывести фрагмент HTML-кода.Но мне нужно, чтобы это было красиво напечатано / с отступом.Есть ли способ сделать это без использования <xsl:text>&#xa;</xsl:text> и <xsl:text>&#9;</xsl:text>?

Я использовал следующую строку без каких-либо результатов.*

    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)

Кто-нибудь знает способ форматирования (хотя бы отступа) вывода XSLT?

Ответы [ 2 ]

7 голосов
/ 29 ноября 2010

Не создавайте свой собственный XmlTextWriter, если хотите, чтобы процессор XSLT применил директиву xsl: output.Вместо этого либо запишите непосредственно в файл, либо создайте 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);
        }
}
3 голосов
/ 29 ноября 2010

Существуют известные способы красивой печати, кроме <xsl:output indent="yes"/>.

Одно хорошее место для поиска - FAQ Дэйва Поусона по XSLT : http://www.dpawson.co.uk/xsl/sect2/pretty.html

Вам также может быть интересно взглянуть на код XPath Visualizer .

...