C# 在XML结束结束标记后添加回车符?

C# 在XML结束结束标记后添加回车符?,c#,C#,我正在处理一些来自供应商的类似XML的文本。文本如下所示: 请注意,在每个元素的结束标记之后都有一个回车符/换行符。 我们有一个程序,可以创建一个新的类似XML的文档,并将其发送回供应商。它基本上只是一个文本文件。但问题是,我们生成的文档在每个结束标记后不包含回车/换行符 我们不能修改程序,但我想我们可以编写一个小程序,读入文本文档,在每个结束标记的末尾添加一个CR/LF,然后写回,基本上只是修改文本,使其看起来像供应商的文档 我第一次尝试这样做效果不好。以下是我使用的代码: // Add C

我正在处理一些来自供应商的类似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>...
nextOver.gifimages/nextOver.gif0。。。
我只想读入文本文件,在每个closking标记后添加一个CR/LF,然后写出修改后的文件

编辑:我只是有个想法。也许我可以使用正则表达式根据标记是否包含
/
字符来挑选每个结束标记,然后,不知何故,在…

之后添加CR/LF。您可以使用正则表达式:

string result = Regex.Replace(str, "</([^>]*)>", "</$1>" + Environment.NewLine);
string result=Regex.Replace(str,“]*)>”,“+Environment.NewLine);

如果文本是有效的
XML
,请尝试将其读入
XmlDocument
,然后使用以下
XmlWriterSettings
将其写回:

using (XmlWriter writer = XmlWriter.Create(filename, new XmlWriterSettings
    { Indent = true, IndentChars = String.Empty }))
{
    xmlDocument.Save(writer);
}

您需要支持CDATA吗?不,它的XML格式不是很好。这只是一堆元素,没有CDATA。这让我接近了我所需要的。我将进一步修改以获得准确的结果,但这正是我需要指出的正确方向。谢谢