在XML中需要插入自己的字符串,但是发现&<>"这些字符无法替换掉,使用正常的Replace没有效果,网上也没有找到合适的。并且由于是控制台程序,无法引用NET类,经过查询MSDN得到些启发,写下这个转换方法,以供参考。如果有更好的方法可以共享下! 

       #region XML转义字符处理
        
/// <summary>
        
/// XML转义字符处理
        
/// </summary>
        public static string ConvertXml(string xml)
        {

            xml 
= (char)1 + xml;   //为了避免首字母为要替换的字符,前加前缀

            
for (int intNext = 0true; )
            {
                
int intIndexOf = xml.IndexOf("&", intNext);
                intNext 
= intIndexOf + 1;  //避免&被重复替换
                if (intIndexOf <= 0)
                {
                    
break;
                }
                
else
                {
                    xml 
= xml.Substring(0, intIndexOf) + "&amp;" + xml.Substring(intIndexOf + 1);
                }
            }

            
for (; true; )
            {
                
int intIndexOf = xml.IndexOf("<");
                
if (intIndexOf <= 0)
                {
                    
break;
                }
                
else
                {
                    xml 
= xml.Substring(0, intIndexOf) + "&lt;" + xml.Substring(intIndexOf + 1);
                }
            }

            
for (; true; )
            {
                
int intIndexOf = xml.IndexOf(">");
                
if (intIndexOf <= 0)
                {
                    
break;
                }
                
else
                {
                    xml 
= xml.Substring(0, intIndexOf) + "&gt;" + xml.Substring(intIndexOf + 1);
                }
            }

            
for (; true; )
            {
                
int intIndexOf = xml.IndexOf("\"");
                if (intIndexOf <= 0)
                {
                    
break;
                }
                
else
                {
                    xml 
= xml.Substring(0, intIndexOf) + "&quot;" + xml.Substring(intIndexOf + 1);
                }
            }

            
return xml.Replace(((char)1).ToString(), "");

        }
        
#endregion
posted on 2009-05-12 08:41  老白  阅读(12668)  评论(2编辑  收藏  举报