Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How validate HTML using PL/SQL

jariolaJul 26 2013 — edited Aug 2 2013

Hi,

I try validate HTML using PL/SQL that user inputs.

I did create below function for that purpose

CREATE OR REPLACE

FUNCTION validate_html(

  p_html IN VARCHAR2

) RETURN BOOLEAN

AS

  l_comment  XMLTYPE;

  xml_parse_err EXCEPTION;

  PRAGMA EXCEPTION_INIT (xml_parse_err , -31011);

BEGIN

  l_comment := xmlType.createXML('<root><row>' || p_html || '</row></root>');

  RETURN TRUE;

EXCEPTION WHEN xml_parse_err THEN

  RETURN FALSE;

END;

/

Function works ok and return true if I run e.g.

BEGIN

  IF validate_html('<p>Hello</p>') THEN

    dbms_output.put_line('OK');

  ELSE

    dbms_output.put_line('Not valid HTML');

  END IF;

END;

/

And return false if I enter not valid HTML like

BEGIN

  IF validate_html('<p>Hello') THEN

    dbms_output.put_line('OK');

  ELSE

    dbms_output.put_line('Not valid HTML');

  END IF;

END;

/

But it return false also if I run below

BEGIN

  IF validate_html('<p>Hello &nbsp</p>') THEN

    dbms_output.put_line('OK');

  ELSE

    dbms_output.put_line('Not valid HTML');

  END IF;

END;

/

Problem seems to be that &nbsp (there is ; in end but do not know how post it without forum convert that to space) witch is valid HTML for me.

I know that HTML is not XML, but can I use Oracle database XML functions for validating HTML?

How I should validate user inputted HTML?

I'm currently developing this using Oracle XE 11G database.

Regards,

Jari

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 30 2013
Added on Jul 26 2013
9 comments
1,820 views