2012-02-07 64 views
0

\ n我在下面所示的XML字符串:更換由\ñ

String xml = @"<axislable='ihgyh\nuijh\nkjjfgj'>"; 

現在,當我嘗試輸出的XML它顯示<axislable='ihgyh\nuijh\nkjjfgj'>

但我的要求是打破像下面的線

<axislable='ihgyh 
uijh 
kjjfgj'> 

我曾嘗試更換使用xml = xml.Replace("\n", "\\n");的XML,但它不似乎work.Any想法如何打破行?

問候, Sharmila

+4

只是不使用逐字字符串文字,其中的反斜槓不會逃脫任何東西。去掉 @。 – user1096188 2012-02-07 12:35:05

回答

3

它不工作,因爲你有你的字符串沒有換行符。您的字符串包含子字符串「\ n」。

注意您使用@運算符。

嘗試以下操作:

xml = xml.Replace("\\n", "\n"); 
+3

@不是運算符 - 它只是逐字字符串文字的一部分語法。 – 2012-02-07 12:38:58

+0

謝謝:)但我需要\ n來代替\\ n像 sharmila 2012-02-07 12:40:20

+0

@JonSkeet對不起我的英語,因爲它不是我的母語(也不是我知道逐字符號的正確英文定義是什麼),感謝修正 – Shai 2012-02-07 13:01:13

4

不要使用@前綴:

var xml = "<axislable='ihgyh\nuijh\nkjjfgj'>"; 

你也可能需要"\r\n"代替:

var xml = "<axislable='ihgyh\r\nuijh\r\nkjjfgj'>"; 
+2

這真的是最好的答案,只是不要使用@作爲逐字字符串。 – ken2k 2012-02-07 12:40:30

1

嘗試

xml.Replace(@"\n", Envioroment.NewLine);

1

獅子座的回答類似(抱歉不知道如何在你的答案評論)

String xml = String.Format("<axislable='ihgyh{0}uijh{0}kjjfgj'>", Environment.NewLine); 
+0

檢查_Add comment_按鈕在任何答案的底部;) – 2012-02-07 13:23:47

+0

我沒有看到其他人的答案添加註釋按鈕,只有我:( – syclee 2012-02-07 23:25:09

1

@字符意味着該字符串是逐字字符串,這意味着轉義字符如\字符串中的n不會被處理並視爲文本。

下面的字符串是一個普通的字符串:

string xml="<axislable='ihgyh\nuijh\nkjjfgj'>"; 

,並翻譯成\ n轉義序列,你會期望一個換行符。

您應該檢查documentation on string literals兩種形式之間的區別。

+0

謝謝大家:)我通過使用xml.Replace(@ 「\ n」,@「\\ n」); – sharmila 2012-02-07 12:53:17