我正在尝试输出一段html代码。但我需要它是漂亮的印刷/缩进。
有没有办法在不使用<xsl:text>
</xsl:text>
和<xsl:text>	</xsl:text>
?
我使用了以下行而没有任何结果。
<xsl:output method="html" indent="yes"/>
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)
有人知道格式化(至少缩进)XSLT输出的方法吗?
答案 0 :(得分: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);
}
}
答案 1 :(得分:3)
除<xsl:output indent="yes"/>
之外,还有一些已知的漂亮打印方式。
一个好看的地方是 Dave Pawson's XSLT FAQ : http://www.dpawson.co.uk/xsl/sect2/pretty.html
您可能也有兴趣查看 XPath Visualizer 的代码。