关于-非法的xml字符

关于-非法的xml字符,第1张

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");
   }
  
  
  
  
}

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/2091867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-22
下一篇 2022-07-22

发表评论

登录后才能评论

评论列表(0条)

保存