【发布时间】:2014-03-27 19:24:36
【问题描述】:
我正在处理来自供应商的一些类似 XML 的文本。文字看起来像这样:
请注意,每个元素的结束标记后都有一个回车符/换行符。 我们有一个程序可以创建一个新的类似 XML 的文档,以发送回供应商。它基本上只是一个文本文件。但问题是,我们生成的文档在每个结束标记后不包含回车/换行。
我们无法修改程序,但我想我们可以编写一个小程序来读取文本文档,在每个结束标记的末尾添加一个 CR/LF,然后将其写回,基本上只是修改文本看起来像供应商的文档。
我第一次尝试这样做并不顺利。这是我使用的代码:
// Add CR/LF to file.
var myFile = File.ReadAllText(_filePath);
myFile = myFile.Replace(">", ">" + Environment.NewLine);
File.WriteAllText(_filePath, myFile);
但是,我忘记了对 > 字符进行替换,也将对起始元素标记进行替换。所以,我现在在开始和结束标签之后有一个 CR/LF:
所以,基本上,我想知道如何在 结束 结束标记之后添加 CR/LF?
我还应该提一下,我试图这样做的文件是一长串类似 xml 的文本。所以,它看起来像这样:
<name>nextOver.gif</name><relativelink>images/nextOver.gif</relativelink><resourceflags>0</resourceflags>...
我只是想读入文本文件,在每个closking标签后添加一个CR/LF,然后写出修改后的文件。
编辑:我只是有一个想法。也许我可以使用 RegEx 根据标签是否包含 / 字符来挑选每个结束标签,然后以某种方式在...之后添加 CR/LF...
【问题讨论】:
-
你需要支持CDATA吗?
-
不,它不是格式良好的 XML。它只是一堆元素,没有 CDATA。
标签: c#