zoukankan      html  css  js  c++  java
  • 关于-非法的xml字符

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

             
    if (c < 0xE000return falseif (c <= 0xFFFDreturn true;
             
    if (c < 0x10000return falseif (c <= 0x10FFFFreturn true;
           
             
    return false;
         }

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

    public class q {

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

            
    if (c < 0xE000return falseif (c <= 0xFFFDreturn true;
            
    if (c < 0x10000return falseif (c <= 0x10FFFFreturn 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");
       }
      
      
      
      
    }

    }
     
  • 相关阅读:
    【2020-05-03】发掘自己内心那个原点的力量
    【2020-05-02】要适应不确定性
    【2020-05-01】人生十三信条
    【一句日历】2020年5月
    【2020-04-30】每一句话,都是自我学习
    【2020-04-29】勤奋是一种享受
    【2020-04-28】自我观念强化的实践
    【2020-04-27】自我提升的里程碑
    【2020-04-26】还在温室里的自己
    家谱树(信息学奥赛一本通 1351)
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470695.html
Copyright © 2011-2022 走看看