обновление: немного предыстории - я использую XML-файл для генерации набора PDF-файлов (через Java-приложение, которое управляет JasperReports). все отчеты выходят пустыми, когда я использую этот новый XML-файл. Я исключил проблемы с сетью, потому что я использую старый xml-файл с того же сервера, на котором я запускаю java-приложение с новым xml-файлом. Я сравнил два файла (старый-хороший и новый-плохой) с помощью hex-редактора, и моя первая подсказка заключается в том, что в новом файле есть возврат каретки, а в старом нет. Возможно, это не решит проблему, но я бы хотел исключить ее из уравнения.
Я думаю Мне нужно удалить все возвраты каретки из моего 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()