xmltype.extractValue

来源:互联网 发布:java h5微信支付接口 编辑:程序博客网 时间:2024/06/06 18:17
WITH x AS (SELECT '<?xml version="1.0" encoding="GB2312"?><root>                                                <workOrderId>427269723</workOrderId>        <isSuccess>true</isSuccess>              <resultCode>0</resultCode>           <workOrderDesc><![CDATA[操作成功。]]></workOrderDesc>   <timeStamp>2014-02-01 02:24:39</timeStamp>            </root>' A    FROM dual)SELECT extractValue(xmltype(x.a), '/root/workOrderDesc') as v FROM x
V---------操作成功。

如果不想用正则,可以采用下面的方法

WITH x AS (SELECT '<?xml version="1.0" encoding="GB2312"?><root>                                                <workOrderId>427269723</workOrderId>        <isSuccess>true</isSuccess>              <resultCode>0</resultCode>           <workOrderDesc><![CDATA[操作成功。]]></workOrderDesc>   <timeStamp>2014-02-01 02:24:39</timeStamp>            </root>' A    FROM dual)SELECT ltrim(regexp_substr(A, 'CDATA\[[^]]+', 1), 'CDATA\[') FROM x
问题在于有多个CDATA时,还需要进一步定位

0 0