作者qrtt1 (愚人)
站内java
标题Re: [JSP ] 有处理xml特殊字元的方法吗
时间Thu Dec 20 19:22:52 2007
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: 基本上,把 & 用 & 取代,这个方向是对的阿
: 你应该是操作 String.replace 或是 String.replaceAll 的时候没有控制好
: (尤其是你还有要处理 >, <, 空白这些东西)
: 我以前自己写过 method,没有问题... [茶]
: 後来,不知道为甚麽都没遇到 [误]
: 只是现在的 JSP 应该都已经包含 EL 跟 JSTL
: EL 我忘记会不会处理 &
: 不过 JSTL 的 c:out 是绝对可以帮你处理这种东西的
: 以上
可以用这个
org.apache.commons.lang.StringEscapeUtils.escapeHtml(String str)
=================================================================
之前用 StringEscapeUtils 来做的功能
/*
* 不直接使用 StringEscapeUtils 来 escape
* 是因为有些内容会夹杂已经 escape 的 html entity
* 所以, 额外判断只针对不是 由 & 开始 ; 结尾的内容做 escape .
*/
def func_escapeHtml(html){
if(!(html instanceof CharSequence)) return html;
StringBuffer buf = new StringBuffer();
Pattern patt = Pattern.compile("(.*?)(&[^;]+?;)>*(.*)", Pattern.DOTALL);
Matcher m = patt.matcher(html);
boolean goesOn;
while(goesOn = m.find()){
buf.append(StringEscapeUtils.escapeHtml(m.group(1)));
buf.append(m.group(2));
html = html.substring(m.group(1).length() + m.group(2).length());
}
buf.append(html);
return buf.toString();
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.80.216
1F:→ qrtt1:夭寿.. 差不多看不懂自己的 code 了 orz 12/20 19:25
2F:推 Lordaeron:做张表去replace 就好了, 要搞得这麽麻烦吗? 12/20 22:32
3F:→ qrtt1:没办法啊, 我是愚人 12/20 22:54