Re: [JSP ] 有處理xml特殊字元的方法嗎

看板java作者 (愚人)時間18年前 (2007/12/20 19:22), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : 基本上,把 & 用 &amp; 取代,這個方向是對的阿 : 你應該是操作 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 * 所以, 額外判斷只針對不是 &nbsp; 由 & 開始 ; 結尾的內容做 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

12/20 19:25, , 1F
夭壽.. 差不多看不懂自己的 code 了 orz
12/20 19:25, 1F

12/20 22:32, , 2F
做張表去replace 就好了, 要搞得這麼麻煩嗎?
12/20 22:32, 2F

12/20 22:54, , 3F
沒辦法啊, 我是愚人
12/20 22:54, 3F
文章代碼(AID): #17Qb2D0t (java)
討論串 (同標題文章)
文章代碼(AID): #17Qb2D0t (java)