使用以下代码:
XDocument transformedDoc = new XDocument();
using (XmlWriter writer = transformedDoc.CreateWriter())
{
XslCompiledTransform transform = new XslCompiledTransform();
//transform.Load(XmlReader.Create(new StringReader(HttpContext.Current.Server.MapPath("~/XML/CareLog.xsl"))));
transform.Load(HttpContext.Current.Server.MapPath("~/XML/CareLog.xsl"));
transform.Transform(doc.CreateReader(), writer);
}
我有一些来自数据库的字符串,其中包含<br />
一行返回(如在其他地方使用的)。无论我用 Environment.NewLine、\n 等替换它,它都不会在转换后的文档中放置换行符。
编辑
用 \r\n 替换换行符并按照以下建议进行更改:
var xslt = new XslCompiledTransform();
xslt.Load(HttpContext.Current.Server.MapPath("~/XML/CareLogresidenceSummary.xsl"));
var settings = xslt.OutputSettings.Clone();
settings.NewLineChars = "\n";
using (var reader = doc.CreateReader())
{
using (var writer = XmlWriter.Create(HttpContext.Current.Server.MapPath("~/BrowserTemp/CareLogResidenceSummary.xml"), settings))
{
xslt.Transform(reader, writer);
}
}
仍然可以创建转换后的文档,但仍然没有将任何内容放到新行上。作为参考,我将使用 .doc 扩展名重命名转换后的文档以在 word 中打开,XML 有换行符,但在 Word 中打开时没有。