xml 字符替换,过滤问题
请问:
xml中的"<",">" 怎么替换。
如果用这种方式str = str.Replace("<", "<");
str = str.Replace(">", ">");
替换的话。
如:
<name>张<三<name>
替换后
<name>张<三<name>
实际只要:
<name>张<三<name>
谢谢
xml中的"<",">" 怎么替换。
如果用这种方式str = str.Replace("<", "<");
str = str.Replace(">", ">");
替换的话。
如:
<name>张<三<name>
替换后
<name>张<三<name>
实际只要:
<name>张<三<name>
谢谢
作者: xingn 发布时间: 2011-06-16
xml不会出现"<"">"的,没有替换的问题啊
就是生成的时候加">",会自动替换的。
就是生成的时候加">",会自动替换的。
作者: Liuzhc 发布时间: 2011-06-16
个人思路:
从单纯的处理字符串的角度,可以理解为:在<与>配对的基础上,把所有不能配对的<或者>替换为<或>。
1. 对于<与>的配对,我最常用的算法是Stack。遇到<就Push,遇到>就Pop。
2. 出现连续的两个<,就把后一个换成"<"进行Push;出现两个连续的>,就把出现的前一个>替换为">"
3. 每次Pop时,注意用作输出值的字符串与Pop出的值的连接顺序。
我没想太细,你自己再完善一下吧。
从单纯的处理字符串的角度,可以理解为:在<与>配对的基础上,把所有不能配对的<或者>替换为<或>。
1. 对于<与>的配对,我最常用的算法是Stack。遇到<就Push,遇到>就Pop。
2. 出现连续的两个<,就把后一个换成"<"进行Push;出现两个连续的>,就把出现的前一个>替换为">"
3. 每次Pop时,注意用作输出值的字符串与Pop出的值的连接顺序。
我没想太细,你自己再完善一下吧。
作者: Abbey 发布时间: 2011-06-16
用正则表达式替换。
C# code
C# code
static void Main(string[] args) { var replaceTable = new Dictionary<string, string>(); replaceTable.Add("<", "<"); replaceTable.Add(">", ">"); var result = ReplaceXml("<name>张<三</name>", replaceTable); Console.WriteLine(result); Console.Read(); } static string ReplaceXml(string xml, Dictionary<string, string> replaceTable) { Regex regex = new Regex(@"(?<=<(\w+)>).*(?=<\/\1>)"); MatchEvaluator matchReplace = delegate(Match match) { string result = match.Groups[0].Value; foreach (var kv in replaceTable) result = result.Replace(kv.Key, kv.Value); return result; }; return regex.Replace(xml, matchReplace); }
作者: fangxinggood 发布时间: 2011-06-16
用正则 组
作者: sugarbelle 发布时间: 2011-06-16
(?<=>[^>]*)<(?=[^<]*<)
作者: q107770540 发布时间: 2011-06-16