- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用以下代码:
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”来表示新行。
有两种方法可以处理换行符:
设置编写器在使用 NewLineChars 编写新行时使用特定字符选项。
指示作者不要使用 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/
我有一个包含 805 模板的大型 XSLT 文件,根据系统和环境,该文件会因堆栈溢出而失败。 开发环境为 Windows 7、InfoPath 2010 和 C#。尽管安装了 .NET 4.0,但此版
MSDN for .NET System.Xml.Xsl.XslCompiledTransform 类状态: Thread Safety [1] The XslCompiledTransform ob
我在搞乱编码。 一方面,我有一个以 UTF-8 格式响应我的 url(我非常确定,感谢 firebug 插件)。 我使用以下代码打开读取 UTF-8 内容的 url: StreamReader rea
XslTransform 似乎已被 Microsoft 弃用,而支持 XslCompiledTransform。从理论上讲,如果我在应用程序执行期间只进行一次转换,那么解释 XSLT(通过 XslTr
使用以下代码: XDocument transformedDoc = new XDocument(); using (XmlWriter writer = transformedDoc
我正在尝试使用 XslCompiledTransform,并将输出用作 XPathDocument。 有什么想法吗? 最佳答案 先生。琼斯的回答对我很有帮助,但我发现最后一行不起作用。我最终这样做了:
不幸的是,我正在开发一个对所有内容都使用 XSL 的网站。表现可怕。花在 JIT 上的时间大约是 30%! 我一直认为这家公司需要 4 台服务器来运行其小站点这一事实归结为 XSL,但我终于做了一个适
我想读取一个 xml 文件,应用一个转换,然后写入另一个文件。我能想到的最好的方法是: using (XmlTextReader reader = new XmlTextReader(new File
我正在尝试将大型应用程序从 XslTransform 迁移到已编译的 xsl 文件和 XslCompiledTransform。 应用程序使用 Xsl 创建 HTML 文件,转换数据 (Xml) 通过
我正在使用 XslCompiledTransform 将 XML 文件转换为 HTML。有什么方法可以阻止它使用自闭合标签。 例如 无论我使用哪种浏览器,span 上的自闭合标签都会弄乱我的文
为 制作了一个带有输出指令的 xslt 模板: 在 xsl-debug 中我接收正确 在 html 之上。 但是当我使用 XslCompiledTransform 等时..输出开始于 因此,缺
我有一个 XslCompiledTransform对象,我希望输出为 XmlReader对象,因为我需要通过第二个样式表传递它。我有点困惑 - 我可以成功转换一些 XML 并使用 StreamRead
我试了又试,但我无法在不从磁盘加载样式表(通过将 URI 传递到 XslCompiledTransform.Load() 方法)的情况下进入 XslCompiledTransform。 我完全清楚,如
我有以下代码需要从 VS 2003 (.Net 1.1) 迁移到 VS 2008 (.Net 2+)但我收到编译错误 - System.Xml.Xsl.XslTransform' 已过时:此类已被弃用
我有以下代码,我想使用UTF-8编码格式输出xml数据。但它始终以 UTF-16 格式输出数据: XslCompiledTransform xslt = new XslCompiled
我正在尝试在 Excel 中获取一张表并使用 VBA 创建一个 XML 文档,然后使用 XSLT 样式表转换该文档。 我已经包含了下面的代码,直到我遇到问题为止。 当我尝试像这样创建一个对象时: Di
有人能告诉我为什么会这样吗? 我的 XML 是: some text goes here a top elem today a subnode
以下代码工作并从本地磁盘获取 XSL 和 XML,并将转换后的 XML 返回到变量 Xtransoutput。 Dim XmlInputPath As String = "C:\Any.XML" Di
我使用以下 VB.NET 代码将一些 XML 转换为新的 XML,然后继续处理。这是一次性过程,而不是多次完成的过程,因此据我所知,缓存不会提高效率。 代码有效,但我发现性能问题。我知道性能问题可能与
我有以下 xslt ,我需要使用 xslt 2.0 版功能,如“格式日期”。如何使用 XsltCompiledTransform 类(c#、.net 4.5)声明 Xsl 工作表使用 2.0 版。
我是一名优秀的程序员,十分优秀!