android XML特殊字符处理
2014-10-24 10:30
225 查看
public class XMPPUtil
{
/**
* XML特殊字符变为转义字符
*
* @param string the string to escape.
* @return the string with appropriate characters escaped.
*/
public static String escapeXML(String string)
{
if (string == null)
{
return null;
}
char ch;
int i = 0;
int last = 0;
char[] input = string.toCharArray();
int len = input.length;
StringBuilder out = new StringBuilder((int)(len * 1.3));
for (; i < len; i++)
{
ch = input[i];
if (ch > '>')
{
}
else if (ch == '<')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("<");
}
else if (ch == '>')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(">");
}
else if (ch == '&')
{
if (i > last)
{
out.append(input, last, i - last);
}
// Do nothing if the string is of the form ë (unicode value)
if (!(len > i + 5 && input[i + 1] == '#' && Character.isDigit(input[i + 2])
&& Character.isDigit(input[i + 3]) && Character.isDigit(input[i + 4]) && input[i + 5] == ';'))
{
last = i + 1;
out.append("&");
}
}
else if (ch == '"')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(""");
}
else if (ch == '\'')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("'");
}
}
if (last == 0)
{
return string;
}
if (i > last)
{
out.append(input, last, i - last);
}
return out.toString();
}
/**
* XMl转义字符变为特殊字符
*
* @param string
* @return
*/
public static String unescapeXML(String string)
{
return string.replace("&", "&")
.replace(""", "\"")
.replace("<", "<")
.replace(">", ">")
.replace("&apos", "'");
}
}
public class XMPPUtil
{
/**
* XML特殊字符变为转义字符
*
* @param string the string to escape.
* @return the string with appropriate characters escaped.
*/
public static String escapeXML(String string)
{
if (string == null)
{
return null;
}
char ch;
int i = 0;
int last = 0;
char[] input = string.toCharArray();
int len = input.length;
StringBuilder out = new StringBuilder((int)(len * 1.3));
for (; i < len; i++)
{
ch = input[i];
if (ch > '>')
{
}
else if (ch == '<')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("<");
}
else if (ch == '>')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(">");
}
else if (ch == '&')
{
if (i > last)
{
out.append(input, last, i - last);
}
// Do nothing if the string is of the form ë (unicode value)
if (!(len > i + 5 && input[i + 1] == '#' && Character.isDigit(input[i + 2])
&& Character.isDigit(input[i + 3]) && Character.isDigit(input[i + 4]) && input[i + 5] == ';'))
{
last = i + 1;
out.append("&");
}
}
else if (ch == '"')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(""");
}
else if (ch == '\'')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("'");
}
}
if (last == 0)
{
return string;
}
if (i > last)
{
out.append(input, last, i - last);
}
return out.toString();
}
/**
* XMl转义字符变为特殊字符
*
* @param string
* @return
*/
public static String unescapeXML(String string)
{
return string.replace("&", "&")
.replace(""", "\"")
.replace("<", "<")
.replace(">", ">")
.replace("&apos", "'");
}
}
{
/**
* XML特殊字符变为转义字符
*
* @param string the string to escape.
* @return the string with appropriate characters escaped.
*/
public static String escapeXML(String string)
{
if (string == null)
{
return null;
}
char ch;
int i = 0;
int last = 0;
char[] input = string.toCharArray();
int len = input.length;
StringBuilder out = new StringBuilder((int)(len * 1.3));
for (; i < len; i++)
{
ch = input[i];
if (ch > '>')
{
}
else if (ch == '<')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("<");
}
else if (ch == '>')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(">");
}
else if (ch == '&')
{
if (i > last)
{
out.append(input, last, i - last);
}
// Do nothing if the string is of the form ë (unicode value)
if (!(len > i + 5 && input[i + 1] == '#' && Character.isDigit(input[i + 2])
&& Character.isDigit(input[i + 3]) && Character.isDigit(input[i + 4]) && input[i + 5] == ';'))
{
last = i + 1;
out.append("&");
}
}
else if (ch == '"')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(""");
}
else if (ch == '\'')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("'");
}
}
if (last == 0)
{
return string;
}
if (i > last)
{
out.append(input, last, i - last);
}
return out.toString();
}
/**
* XMl转义字符变为特殊字符
*
* @param string
* @return
*/
public static String unescapeXML(String string)
{
return string.replace("&", "&")
.replace(""", "\"")
.replace("<", "<")
.replace(">", ">")
.replace("&apos", "'");
}
}
public class XMPPUtil
{
/**
* XML特殊字符变为转义字符
*
* @param string the string to escape.
* @return the string with appropriate characters escaped.
*/
public static String escapeXML(String string)
{
if (string == null)
{
return null;
}
char ch;
int i = 0;
int last = 0;
char[] input = string.toCharArray();
int len = input.length;
StringBuilder out = new StringBuilder((int)(len * 1.3));
for (; i < len; i++)
{
ch = input[i];
if (ch > '>')
{
}
else if (ch == '<')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("<");
}
else if (ch == '>')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(">");
}
else if (ch == '&')
{
if (i > last)
{
out.append(input, last, i - last);
}
// Do nothing if the string is of the form ë (unicode value)
if (!(len > i + 5 && input[i + 1] == '#' && Character.isDigit(input[i + 2])
&& Character.isDigit(input[i + 3]) && Character.isDigit(input[i + 4]) && input[i + 5] == ';'))
{
last = i + 1;
out.append("&");
}
}
else if (ch == '"')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(""");
}
else if (ch == '\'')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("'");
}
}
if (last == 0)
{
return string;
}
if (i > last)
{
out.append(input, last, i - last);
}
return out.toString();
}
/**
* XMl转义字符变为特殊字符
*
* @param string
* @return
*/
public static String unescapeXML(String string)
{
return string.replace("&", "&")
.replace(""", "\"")
.replace("<", "<")
.replace(">", ">")
.replace("&apos", "'");
}
}
相关文章推荐
- androidのstring.xml转译、特殊字符问题处理
- asp生成xml中的特殊字符处理
- 处理XML字符串中特殊字符
- XML 特殊字符处理
- XML处理特殊字符
- xml特殊字符处理 如&
- 关于使用dom4j生成xml时特殊字符处理的解决方法
- XML 特殊字符处理
- sharepoint 影响生成xml 特殊字符处理的方式
- Domino+XML开发中特殊字符处理(另,LS调用java类)
- 处理XML字符串中特殊字符
- XML配置字符串中特殊字符的处理
- xml文档里含有特殊字符时的处理方法(php)
- XML 特殊字符处理
- xml特殊字符处理(js)
- xslt生成xml出现特殊字符Â处理方法
- XML中特殊字符的处理
- xml文件中特殊字符的处理
- XML 特殊字符处理
- XML_E_UNEXPECTED_WHITESPACE错误处理 xml特殊字符