我使用XSLT转换从XML数据创建html内容。转换在Oracle 10g中完美运行。但是,它无法在Oracle 11g中生成html内容。给出了跟随错误
LPX-00660:不是格式良好的文件或外部实体。
以下是示例代码
declare
output clob;
begin
select XMLTRANSFORM(XMLType('<?xml version="1.0" encoding="utf-8"?>' ||
'<DATA>' ||
' <ROWSET>' ||
' <ROW>' ||
' <TIME_CURRENT>04-DEC-2015 06:42 AM</TIME_CURRENT>' ||
' </ROW>' ||
' </ROWSET>' ||
'</DATA>'), '<?xml version="1.0" encoding="utf-8"?>' ||
'<xsl:stylesheet version="1.0"' ||
' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' ||
' <xsl:output method="html" encoding="UTF-8" indent="yes"' ||
' doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"' ||
' doctype-system="http://www.w3.org/TR/html4/loose.dtd" />' ||
' <xsl:template match="DATA">' ||
' <p>' ||
' Time Now:' ||
' <xsl:value-of select="ROWSET/ROW/TIME_CURRENT" />' ||
' </p>' ||
' <xsl:call-template name="create_table"></xsl:call-template>' ||
' </xsl:template>' ||
' <xsl:template name="create_table">' ||
' <br/>' ||
' Total row count = <xsl:value-of select="count(ROWSET/ROW)" />' ||
' </xsl:template>' ||
'</xsl:stylesheet>').getClobval() into output from dual;
dbms_output.put_line(output);
end;
我发现转换在<br/>
标记失败了。
' <xsl:template name="create_table">' ||
' <br/>' ||
' Total row count = <xsl:value-of select="count(ROWSET/ROW)" />' ||
' </xsl:template>'
当我删除它时,转换工作正常。因为,输出需要为html,从代码中删除任何此类标记对我来说不是解决方案。
Oracle 10g版本= 10.2.0.5.0
Oracle 11g版本= 11.2.0.4.0
任何帮助将不胜感激。
由于