在利用XML Publish开发打印PDF文件中,对于物料描述和供应商的显示经常会碰到一些特殊字符,例如“<,>”等。
这些特殊字符是XML的标记字符,在 XML 中有特殊的含义,所以,对一些可能有特殊字符的VARCHAR2类型的内容进行处理,确保程序运行正常。
可以单独写成一个函数,供重复使用,如下:
FUNCTION xml_text_replace(pi_text IN VARCHAR2 -- Source text
) RETURN VARCHAR2 IS
w_text VARCHAR2(5000);
BEGIN
w_text := REPLACE(pi_text, CHR(38), CHR(38) || 'amp;');
w_text := REPLACE(w_text, '<', CHR(38) || 'lt;');
w_text := REPLACE(w_text, '>', CHR(38) || 'gt;');
w_text := REPLACE(w_text, '"', CHR(38) || 'quot;');
w_text := REPLACE(w_text, '''', CHR(38) || 'apos;');
w_text := REPLACE(REPLACE(w_text, CHR(13), ''), CHR(10), '');
RETURN w_text;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
RAISE;
END xml_text_replace;
使用方法,如下:
varchar2(500) v_data := ‘********’
xml_text_replace(v_data );
如上便可以实现XML特殊字符的转换显示,确保程序运行正常。