从XML文件中删除回车C#
问题描述:
我需要从XML文件中删除回车,但我得到的只是一个包含一个方框(\ r)的XML文件。我写到:从XML文件中删除回车C#
string sourceFileName = textBox1.Text;
StreamReader sr = new StreamReader(sourceFileName);
String line;
String newLine = null;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
//Regex regex = new Regex(@"(\r\n|\r|\n)+");
newLine = line.Replace("\r\n", String.Empty);
//also tried line.Replace("\n", String.Empty).Replace("\r",String.Empty); , but no use
StreamWriter sw = new StreamWriter(@"C:\Users\manish\Desktop\output.xml");
sw.WriteLine(newLine);
sw.Close();
}
这里有什么问题。
编辑:
下面是示例:
3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 27 31
30 27 3F 3E 3C 72 6F 6F 74 3E 20 E0 A8 8D E2 80
80 E3 B0 80 E4 8C 80 E4 A4 80 E4 90 80 E3 B8 80
E7 8C 80 E7 8C 80 E5 BC 80 E6 98 80 E6 B0 80 E3
88 80 E7 94 80 E3 8C 80 E5 BC 80 E6 B8 80 E6 88
80 E5 BC 80 E7 94 80 E3 8C 80 E5 BC 80 E6 8C 80
E3 84 80 E3 80 80 E5 BC 80 E7 8C 80 E3 84 80 E3
B0 80 E2 BC 80 E4 8C 80 E4 A4 80 E4 90 80 E3 B8
80 E2 80 80 E0 B4 80 E0 B4 80 0A 20 3C 62 6F 6F
6B 74 69 74 6C 65 3E 3C 21 5B 43 44 41 54 41 5B
5D 5D 3E 3C 2F 62 6F 6F 6B 74 69 74 6C 65 3E 3C
70 61 6E 65 6C 73 3E E0 A8 8D E3 B0 80 E7 80 80
<?xml version='10'?><root> à¨â€€ã°€äŒ€ä¤€ä€ã¸€çŒ€çŒ€å¼€æ˜€æ°€ãˆ€ç”€ãŒ€å¼€æ¸€æˆ€å¼€ç”€ãŒ€å¼€æŒ€ã„€ã€€å¼€çŒ€ã„€ã°€â¼€äŒ€ä¤€ä€ã¸€â€€à´€à´€
<booktitle><![CDATA[]]></booktitle><panels>à¨ã°€ç€€æ„€æ¸€æ”€æ°€â€€ç€æ¤€ç€æ°€æ”€ã´€âœ€äœ€ä”€ä¼€äœ€åˆ€ä„€å€€ä €å¤€â€€åŒ€ä¬€ä¤€ä°€ä°€äˆ€å”€ä¤€ä°€ä€ä”€åˆ€âœ€ã¸€à´€à´€
<questionsAndAnswers>à¨ã°€æ €æ”€æ„€æ€æ¤€æ¸€æœ€ã¸€ã°€â„€å¬€äŒ€ä€ä„€å€ä„€å¬€ã°€æˆ€ã¸€ä¤€æ¸€ç€æ”€çˆ€ç€€çˆ€æ”€ç€æ¤€æ¸€æœ€â€€ä´€æ„€ç€€çŒ€ã°€â¼€æˆ€ã¸€å´€å´€ã¸€ã°€â¼€æ €æ”€æ„€æ€æ¤€æ¸€æœ€ã¸€à´€à´€
<question><![CDATA[<b>1 Location</b> Why is Arabia's location a good one for trade?]]></question>à¨ã°€æ„€æ¸€çŒ€çœ€æ”€çˆ€â¼€ã¸€à´€à´€
<ansCharCount>350</ansCharCount>à¨ã°€â¼€ç„€ç”€æ”€çŒ€ç€æ¤€æ¼€æ¸€çŒ€ä„€æ¸€æ€ä„€æ¸€çŒ€çœ€æ”€çˆ€çŒ€ã¸€à´€à´€
<questionsAndAnswers>à¨ã°€æ €æ”€æ„€æ€æ¤€æ¸€æœ€ã¸€ã°€â„€å¬€äŒ€ä€ä„€å€ä„€å¬€ã°€æˆ€ã¸€ä¤€æ¸€ç€æ”€çˆ€ç€€çˆ€æ”€ç€æ¤€æ¸€æœ€â€€ä´€æ„€ç€€çŒ€ã°€â¼€æˆ€ã¸€å´€å´€ã¸€ã°€â¼€æ €æ”€æ„€æ€æ¤€æ¸€æœ€ã¸€à´€à´€
<question><![CDATA[<b>2 Movement</b> Why was the location of Mecca ideal for the spread of ideas?]]></question>à¨ã°€æ„€æ¸€çŒ€çœ€æ”€çˆ€â¼€ã¸€à´€à´€
<ansCharCount>350</ansCharCount>à¨ã°€â¼€ç„€ç”€æ”€çŒ€ç€æ¤€æ¼€æ¸€çŒ€ä„€æ¸€æ€ä„€æ¸€çŒ€çœ€æ”€çˆ€çŒ€ã¸€à´€à´€
</panel>à¨ã°€ç€€æ„€æ¸€æ”€æ°€â€€ç€æ¤€ç€æ°€æ”€ã´€âœ€ä´€æ„€æ¤€æ¸€â€€ä¤€æ€æ”€æ„€âœ€ã¸€à´€à´€
<questionsAndAnswers>à¨ã°€æ €æ”€æ„€æ€æ¤€æ¸€æœ€ã¸€ã°€â„€å¬€äŒ€ä€ä„€å€ä„€å¬€å´€å´€ã¸€ã°€â¼€æ €æ”€æ„€æ€æ¤€æ¸€æœ€ã¸€à´€à´€
<question><![CDATA[<b>A Analyzing Primary Sources </b>What kind of teaching does the phrase "the use of the pen†refer to?]]></question>à¨ã°€æ„€æ¸€çŒ€çœ€æ”€çˆ€â¼€ã¸€à´€à´€
<ansCharCount>350</ansCharCount>à¨ã°€â¼€ç„€ç”€æ”€çŒ€ç€æ¤€æ¼€æ¸€çŒ€ä„€æ¸€æ€ä„€æ¸€çŒ€çœ
看起来scary..huh !!
答
您正在阅读的行的文件行,太行返回将永远包含\r
,\n
或\r\n
- 那些是行分隔符。
最简单的方法就是加载一大堆到内存中,删除所有换行符,然后写出来:
string text = File.ReadAllText(sourceFileName);
text = text.Replace("\r", "").Replace("\n", "");
File.WriteAllText(sourceFileName, text);
当然,如果你只要删除回车,只是删除上述代码中的.Replace("\n", "")
。
编辑︰现在,我们可以看到您的文件,是没有XML版本10,这表明文档已损坏之前,你甚至得到它。您应该停止在这一点,并朝着源向后工作,直到您可以获得有效的XML文件。继续你现在得到的东西没有意义。
答
你可以尝试另一种方式是这样:)
string foo = "First Line\nSecond Line\nThird Line";
foo = foo.Replace("\n", @"\" + "n");
的一点是独立\和n(或R,T)。
怎么样'“\ n \ r”'? –
或''\ n''和''\ r'' –
也许sw.WriteLine是一个问题。注意该命令中的行。 – Paparazzi