xml非法字符有哪些,XML字符非法处理方法

  xml非法字符有哪些,XML字符非法处理方法

  privatestaticbooleanisXMLCharacter(intc){

  if(c=0xD7FF){

  if(c=0x20)返回真实;

  否则{

  if(c== )返回真实;

  if(c== )返回真实;

  if(c== )返回真实;

  返回假的;

  }

  }

  如果(c0xE000)返回假的;if(c=0xFFFD)返回真实;

  中频(c0x10000)返回假的;if(c=0x10FFFF)返回真实;

  返回假的;

  }

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

  publicclassq

  privatestaticbooleanisXMLCharacter(intc){

  if(c=0xD7FF){

  if(c=0x20)返回真实;

  否则{

  if(c== )返回真实;

  if(c== )返回真实;

  if(c== )返回真实;

  返回假的;

  }

  }

  如果(c0xE000)返回假的;if(c=0xFFFD)返回真实;

  中频(c0x10000)返回假的;if(c=0x10FFFF)返回真实;

  返回假的;

  }

  publistaticvoidcheckcharacterdata(字符串文本)抛出异常{

  if(text==null){

  thrownewException(

   AnullisnotalegalXMLvalue

  );

  }

  //单据检查

  char[]data=text。tochararray();

  for(inti=0,len=data.length我leni ){

  charc=data[I];

  int result=c;

  //highsurrogate

  if(result=0xd 800 result=0x dbff){

  //Decodesurrogatepair

  in高=c;

  尝试{

  int low=text。charat(I 1);

  如果(低电平0xDC00 低电平0xDFFF){

  thrownewException(

  巴德索罗加泰帕尔

  );

  }

  //AlgorithmdefinedinUnicodespec

  结果=(高-0xD800)*0x400(低-0x DC 00)0x 10000;

  我;

  }

  catch(indexoutofboundsexception){

  thrownewException(

  巴德索罗加泰帕尔

  );

  }

  }

  如果(!isXMLCharacter(result)){

  //很可能这个字符不能轻易显示

  //因为它是控制使用它十六进制的

  原因陈述.

  引发新的异常(“0x

  Integer.toHexString(结果)

  isnotalegalXMLcharacter ");

  }

  }

  //如果有,一切正常

  返回;

  }

  publicstaticvoidmain(String[]args){

  booleanflag=false

  Strings2=asd。br/;

  for(inti=0;i s2.replaceAll( , ).长度();i ){

  intj=s2.replaceAll( , ).查拉特(一);

  flag=is XML character(j);

  如果(!旗)制度。出去。println( SD (char)j SD );

  }

  }

  }

xml非法字符有哪些,XML字符非法处理方法