我收到了一个XML字符串,想要通过XmlReader解析,并试图去除其中的\"
字符。
我尝试过:
.Replace(@"\", "")
.Replace("\\''", "''")
.Replace("\\''", "\"")
还有其他几种方法。
有什么想法吗?
我收到了一个XML字符串,想要通过XmlReader解析,并试图去除其中的\"
字符。
我尝试过:
.Replace(@"\", "")
.Replace("\\''", "''")
.Replace("\\''", "\"")
还有其他几种方法。
有什么想法吗?
你是这样尝试的吗:
string text = GetTextFromSomewhere();
text.Replace("\\", "");
text.Replace("\"", "");
如果是这样的话,那就是问题所在了 - Replace
函数不会改变原始字符串,它返回一个执行替换后的 新 字符串... 所以你应该使用:
string text = GetTextFromSomewhere();
text = text.Replace("\\", "").Replace("\"", "");
请注意,这将替换每个反斜杠和双引号字符;如果您只想替换一对“反斜杠后跟双引号”的字符,那么您只需使用:
string text = GetTextFromSomewhere();
text = text.Replace("\\\"", "");
(正如评论中提到的那样,这是因为在.NET中字符串是不可变的——一旦你以某种方式获得了一个字符串对象,该字符串将始终具有相同的内容。当然,你可以给一个变量赋一个指向不同字符串的引用,但这实际上并没有改变现有字符串的内容。)
Replace(@"""","")
在任何组合中使用反斜杠都没有起作用...
Replace("\\\"","");
这将用空字符串替换"
的出现。
例如:
string t = "\\\"the dog is my friend\\\"";
t = t.Replace("\\\"","");
the dog is my friend
\ => \\ and " => \"
所以Replace("\\\"","")
"
字符的转义字符,因此是实际XML数据的一部分。
string
是不可变的,如果你改变了其中的任何内容,例如使用Replace
方法,它总是会返回一个新的字符串。 - Anthony.Replace()
删除。 - Olivier Jacot-Descombes