关于-非法的xml字符

private   static   boolean  isXMLCharacter( int  c) {
       
         
if  (c  <=   0xD7FF ) {
             
if  (c  >=   0x20 return   true ;
             
else  {
                  
if  (c  ==   ' ' return   true ;
                  
if  (c  ==   ' ' return   true ;
                  
if  (c  ==   ' ' return   true ;
                  
return   false ;
             }
         }

         
if  (c  <   0xE000 return   false if  (c  <=   0xFFFD return   true ;
         
if  (c  <   0x10000 return   false if  (c  <=   0x10FFFF return   true ;
       
         
return   false ;
     }

==================================

public   class  q {

private   static   boolean  isXMLCharacter( int  c) {
       
        
if  (c  <=   0xD7FF ) {
            
if  (c  >=   0x20 return   true ;
            
else  {
                 
if  (c  ==   ' ' return   true ;
                 
if  (c  ==   ' ' return   true ;
                 
if  (c  ==   ' ' return   true ;
                 
return   false ;
            }
        }

        
if  (c  <   0xE000 return   false if  (c  <=   0xFFFD return   true ;
        
if  (c  <   0x10000 return   false if  (c  <=   0x10FFFF return   true ;
      
        
return   false ;
    }

public   static   void  checkCharacterData(String text)  throws  Exception {
        
if  (text  ==   null ) {
            
throw   new  Exception(
              
" A null is not a legal XML value "
            );
        }

        
//  do check
         char [] data  =  text.toCharArray();
        
for  ( int  i  =   0 , len  =  data.length; i  <  len; i ++ ) {
            
char  c  =  data[i];
            
int  result  =  c;
            
//  high surrogate
             if  (result  >=   0xD800   &&  result  <=   0xDBFF ) {
                
//  Decode surrogate pair
                int  high  =  c;
               
try  {
                 
int  low  =  text.charAt(i + 1 );
                 
if  (low  <   0xDC00   ||  low  >   0xDFFF ) {
                   
throw   new  Exception(
                     
" Bad surrogate pair "
                   );
                 }
                 
//  Algorithm defined in Unicode spec
                 result  =  (high - 0xD800 ) * 0x400   +  (low - 0xDC00 +   0x10000 ;
                 i
++ ;
               }
               
catch  (IndexOutOfBoundsException e) {
                   
throw   new  Exception(
                     
" Bad surrogate pair "
                   );
               }
            }

            
if  ( ! isXMLCharacter(result)) {
                
//  Likely this character can't be easily displayed
                
//  because it's a control so we use its hexadecimal
                
//  representation in the reason.
                 throw   new  Exception( " 0x "
                 
+  Integer.toHexString(result)
                 
+   "  is not a legal XML character " );  
            }     
        }

        
//  If we got here, everything is OK
         return ;
    }


public   static   void  main(String[] args) {

  
   
boolean  flag = false  ;
   String s2
= " asd。 <br/>¥ " ;
  
   
for ( int  i = 0 ;i < s2.replaceAll( "   " "" ).length();i ++ ){
   
   
    
int  j = s2.replaceAll( "   " "" ).charAt(i);
    flag
= isXMLCharacter(j);
    
if ( ! flag)System.out.println( " sd " + ( char )j + " sd " );
   }
  
  
  
  
}

}
 

转载于:https://www.cnblogs.com/lanzhi/archive/2008/02/05/6470694.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值