[英]How to validate XML file in Oracle PLSQL
My XML file looks below format 我的XML文件格式如下
<?xml version = '1.0'?>
<ROWSET>
<ROW>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>12/17/1980 0:0:0</HIREDATE>
<SAL>800</SAL>
<DEPTNO>20</DEPTNO>
</ROW>
<ROW>
<EMPNO>7499</EMPNO>
<ENAME>ALLEN</ENAME>
<JOB>SALESMAN</JOB>
<MGR>7698</MGR>
<HIREDATE>2/20/1981 0:0:0</HIREDATE>
<SAL>1600</SAL>
<COMM>300</COMM>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7521</EMPNO>
<ENAME>WARD</ENAME>
<JOB>SALESMAN</JOB>
<MGR>7698</MGR>
<HIREDATE>2/22/1981 0:0:0</HIREDATE>
<SAL>1250</SAL>
<COMM>500</COMM>
<DEPTNO>30</DEPTNO>
</ROW -- Now corresponding closing tag is missed in this line
</ROWSET>
Now My corresponding closing tag was missed in any of the nodes. 现在,在任何节点中都缺少我相应的结束标记。 In PLSQL programming how can identify the missing tag?
在PLSQL编程中如何识别丢失的标签? XMLDB option I can use,But I would like do it in PLSQL.
我可以使用XMLDB选项,但是我想在PLSQL中使用。
If you only need to check if it is a valid XML, you can simply try converting it, handlng the error; 如果只需要检查它是否是有效的XML,则可以简单地尝试将其转换并处理错误。 for example:
例如:
good xml: 好的xml:
SQL> select xmltype(q'[<?xml version = '1.0'?>
2 <ROWSET>
3 <ROW>
4 <EMPNO>7369</EMPNO>
5 </ROW>
6 </ROWSET>]')
7 from dual;
XMLTYPE(Q'[<?XMLVERSION='1.0'?><ROWSET><ROW><EMPNO>7369</EMPNO></ROW></ROWSET>]'
--------------------------------------------------------------------------------
<?xml version="1.0"?>
<ROWSET>
<ROW>
<EMPNO>7369</EMPNO>
</ROW>
</ROWSET
bad xml: 错误的xml:
SQL> select xmltype(q'[<?xml version = '1.0'?>
2 <ROWSET>
3 <ROW>
4 <EMPNO>7369</EMPNO>
5 </ROW
6 </ROWSET>]')
7 from dual;
ERROR:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00231: invalid character 60 ('<') found in a Name or Nmtoken
Error at line 6
ORA-06512: at "SYS.XMLTYPE", line 310
ORA-06512: at line 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.