Xml 如何格式化/缩进XSL转换的输出
我试图输出一段html代码。但我需要很好的印刷/缩进。 没有使用Xml 如何格式化/缩进XSL转换的输出,xml,serialization,xslt,pretty-print,Xml,Serialization,Xslt,Pretty Print,我试图输出一段html代码。但我需要很好的印刷/缩进。 没有使用和#xa和 我使用了下面的一行,没有任何结果 <xsl:output method="html" indent="yes"/> 有人知道格式化(至少缩进)XSLT输出的方法吗?如果希望XSLT处理器应用xsl:output指令,请不要创建自己的XmlTextWriter。而是直接写入文件或按如下方式创建XmlWriter: using (XmlWriter result = XmlWriter.Create(wr
和#xa代码>和 代码>
我使用了下面的一行,没有任何结果
<xsl:output method="html" indent="yes"/>
有人知道格式化(至少缩进)XSLT输出的方法吗?如果希望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);
}
}
除了
一个好地方是:
您可能还想看看@conqenator的代码:如果您不想使用序列化参数xsl:output/@indent
(可能是因为它与MSXSL不一样)并且不想手动执行,那么在XSLT范围内就没有解决方案,但由于您设置了此类限制。您需要提供更多信息,以便我们理解为什么indent=“yes”不适用于您。那么,哪一个是XSLT处理器,如何准确地运行转换,转换成什么(例如文件?),如何看待转换结果?@Alejandro:我已经准备好并使用了xsl:output
。就这样,它对我来说根本没有结果。@Alejandro:我添加了调用转换的代码。好问题,+1。有关XSLT打印资源的链接,请参见我的答案。+1是正确答案,除了缺少解释外:转换正确序列化了输出结果,但默认情况下XmlWriter类仅剥离空白文本节点;您需要通过XmlWriter类的一个参数来关闭此行为。谢谢!我绞尽脑汁想弄明白为什么输出没有缩进,这就解决了它。OP说输出序列化参数不能与他的XSLT处理器一起工作,也不想使用手动标识。我在发布这个问题时真的很纳闷(希望你在场):)是的,几天前我已经下载了Xpath可视化工具。谢谢你的链接。@Alejandro:这在很多情况下都可能是个问题。漂亮打印的可靠方法,特别是当转换要使用不同的XSLT处理器运行时,不是依赖缩进参数,而是DIY
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);
}
}