gpt4 book ai didi

f# - 从 F# 中的 xml 序列化中剥离回车符

转载 作者:行者123 更新时间:2023-12-01 13:02:50 25 4
gpt4 key购买 nike

更新:一些背景 - 我使用 xml 文件生成一组 pdf(通过驱动 JasperReports 的 java 应用程序)。当我使用这个新的 xml 文件时,所有的报告都是空白的。我已经排除了网络问题,因为我使用来自同一台服务器的旧 xml 文件,我使用新的 xml 文件运行 java 应用程序。我已经使用十六进制编辑器比较了两个文件(旧的好文件和新的坏文件),我的第一个线索是新文件中有回车符而旧文件中没有。这可能无法解决问题,但我想从等式中消除它。

认为我需要从我的 xml 文件中删除所有回车符,以便它按我需要的方式工作。在我的旅行中,我找到的最接近的是:

.Replace("\r","")

但是在下面的代码中我应该在哪里使用它呢?我创建我的数据模型,创建一个根,然后将其传递给序列化程序。我什么时候可以说“删除回车?”

let def = new reportDefinition("decileRank", "jasper", new template("\\\\server\\location\\filename.jrxml", "jrxml"))
let header = new reportDefinitions([| def |])
let root = reportGenerator(header, new dbConnection(), new reports(reportsArray))

let path = sprintf "C:\\JasperRpt\\parameter_files\\%s\\%d\\%s\\%s\\" report year pmFirm pmName //(System.DateTime.Now.ToString("ddMMyyyy"))
Directory.CreateDirectory(path) |> ignore
let filename = sprintf "%s%s" path month
printfn "%s" filename
use fs = new FileStream(filename, FileMode.Create)
let xmlSerializer = XmlSerializer(typeof<reportGenerator>)
xmlSerializer.Serialize(fs,root)
fs.Close()

最佳答案

XmlWriterSettings有一些格式化输出的选项,因此通过 XmlWriter 传递输出。

你应该可以做这样的事情(现在手头没有 FSI,不知道它是否编译。:)

 //use fs = new FileStream(filename, FileMode.Create) 
let settings = new XmlWriterSettings();
settings.Indent <- true;
settings.NewLineChars <- "\n";
use w = XmlWriter.Create(filename, settings);
let xmlSerializer = XmlSerializer(typeof<reportGenerator>)
xmlSerializer.Serialize(w,root)

关于f# - 从 F# 中的 xml 序列化中剥离回车符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962930/

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