2016-12-07 2 views
0

У меня есть узел один XML с именемAppend двойные кавычки в строку

<St:ABC="3">APPLE</St:ABC> 

Я хочу передать это имя узла в строковую переменную как

string NodeName="St:ABC="3"", 

Но я столкнулся тэ двойную ошибку цитаты .Я пытался заменить как этот

String myString = "\"" + 3 + "\""; 


String myString1 = myString.Replace(@"\", String.Empty); 

string CompleteChaildNode = "St:ABC"+ "=" + myString1; 

Я не могу заменить «\» значение в строке может кто-то помочь в этом

Я обновляю значение внутреннего тега вроде

TimeSeries [CompleteChaildNode] .InnerText = оранжевый;

+0

Если вы хотите включить двойные кавычки в строке вы должны разграничивать его либо с помощью обратной косой черты или с другим двойная кавычка, если это стенографическая строка '' \ quotes \ "" или '@" "" quoted "" "'. Если вы просмотрите строку в отладчике, она отобразит ее с двойными кавычками, разделенными обратными косыми чертами, вам не нужно их удалять. – juharr

ответ

4

Вам не нужно заменять значение \ в строке. Он используется в строковом литерале, чтобы обозначить, что следующий символ не предназначен как цитата, а как символ строки (называемый escape-символом). Сам \ не является частью строки. Таким образом, вы можете просто написать ...

string NodeName="St:ABC=\"3\"" 

... который будет храниться в виде {St: ABC = "3"} (без скобок).

Обратите внимание, что если вы проверите свое значение в непосредственном окне или в всплывающем окне значения, вы все равно увидите "St:ABC=\"3\"". Это потому, что Visual Studio представляет ценность для вас в своей экранированной форме. Это не означает, что значение фактически сохраняется таким образом.

+0

Мне нужно обновить внутренний тег узла XML, когда я обрабатываю его, показывает тот же «\» и вопрос об исходной ссылке на объект – JAYDHEER

0

Вам не нужно удалять косые черты. Они просто управляющие персонажами. Если у вас есть:

var myString = "St:ABC=\"3\""; 

Он хранит его как St: ABC = "3". Вы можете проверить это с помощью простого печати на экране:

MessageBox.Show(myString); 
+0

Я не могу использовать это при обновлении внутреннего тега. В нем отображается тот же «St: ABC = \ "3 \" – JAYDHEER

+0

Можете ли вы добавить код, который вы пытаетесь использовать в своем вопросе? Что такое строка, которая дает вам ошибку? – Forklift

0

Попробуйте это:

String myString1 = myString.Replace("\"", String.Empty); 
+0

Это точно так же, как и в вопросе. Только не с дословной строкой. – Sefe

+0

Он заменяет «\» отсутствующую двойную кавычку «St: ABC = 3» – JAYDHEER

+1

На самом деле, это хуже, она заменяет цитату, которую OP хочет в своей строке. – Sefe

Смежные вопросы