gpt4 book ai didi

c# - XslCompiledTransform 换行符,如何输入它们?

转载 作者:行者123 更新时间:2023-11-30 17:51:32 26 4
gpt4 key购买 nike

使用以下代码:

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 中打开时没有。

最佳答案

您应该使用“\r\n”来表示新行。

有两种方法可以处理换行符:

  1. 设置编写器在使用 NewLineChars 编写新行时使用特定字符选项。

  2. 指示作者不要使用 NewLineHandling 修改新行选项

因此您可以按如下方式修改代码以保留新行:

var xslt = new XslCompiledTransform();
xslt.Load(HttpContext.Current.Server.MapPath("~/XML/CareLog.xsl"));
var settings = xslt.OutputSettings.Clone();
settings.NewLineChars = "\n";
settings.NewLineHandling = NewLineHandling.Replace;
using (var reader = XmlReader.Create("example.xml"))
{
using (var writer = XmlWriter.Create("yourDoc.txt", settings))
{
xslt.Transform(reader, writer);
}
}

请注意,我还没有运行它。您唯一需要做的就是将您的文件放入对“XmlWriter.Create()”的调用中。

关于c# - XslCompiledTransform 换行符,如何输入它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com