我编写了下面的代码来替换字符串,但似乎代码有问题.它无法多次替换.它只能替换第一次出现.它假设要替换所有出现的事件.
//不要使用System.Security.SecurityElement.Escape.我正在为多个.NET版本编写此代码.
public string UnescapeXML(string s)
{
if (string.IsNullOrEmpty(s)) return s;
return s.Replace("&", "&").Replace("'", "'").Replace(""", "\"").Replace(">", ">").Replace("<", "<");
}
protected void Page_Load(object sender, EventArgs e)
{
string TestData="TestData&amp;amp;";
Response.Write("using function====>>>>" + UnescapeXML(TestData));
Response.Write("\n\n<BR>Not using function====>>>>" + TestData.Replace("&", ""));
}
Run Code Online (Sandbox Code Playgroud)
假设您需要一次通过(每子串)解决方案,您的功能正常运行.
您的testDate &之前缺少字符amp;
改成:
string TestData="TestData&&&";
Run Code Online (Sandbox Code Playgroud)
从:
string TestData="TestData&amp;amp;";
Run Code Online (Sandbox Code Playgroud)
什么是一次通过(每子串)解决方案?
递归替代
递归解决方案将涉及以下内容:
在单个子串替换后,再次调用该函数
如果没有发生替换,则返回该字符串
public string ReplaceStuff(string MyStr) {
//Attempt to replace 1 substring
if ( ReplacementOccurred ){
return ReplaceStuff(ModifiedString);
}else{
return MyStr;
}
}
Run Code Online (Sandbox Code Playgroud)你对Recursion有什么看法?
&amp;,它将首先被更改为&,然后下一级递归会将其更改为&.| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |