如何解决PL / SQL提取XML名称空间值
<DEFeatureDataset xsi:type='typens:DEFeatureDataset'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:xs='http://www.w3.org/2001/XMLSchema'
xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.1'>
如何使用xml查询在select语句中提取第三个名称空间值“ http://www.esri.com/schemas/ArcGIS/10.1”?
解决方法
来自How to select namespace value via XPath:
SELECT XMLQUERY(
'/DEFeatureDataset/namespace-uri-for-prefix("typens",.)'
PASSING XMLTYPE( xml ) RETURNING CONTENT
) AS typens
FROM table_name;
或
SELECT x.*
FROM table_name t
OUTER APPLY XMLTABLE(
'/DEFeatureDataset'
PASSING XMLTYPE( t.xml )
COLUMNS
typens VARCHAR2(100) PATH './namespace-uri-for-prefix("typens",.)'
) x
其中的示例数据:
CREATE TABLE table_name ( xml ) AS
SELECT '<DEFeatureDataset
xsi:type="typens:DEFeatureDataset"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:typens="http://www.esri.com/schemas/ArcGIS/10.1"></DEFeatureDataset>' FROM DUAL
两个输出:
| TYPENS | | :-------------------------------------- | | http://www.esri.com/schemas/ArcGIS/10.1 |
db 提琴here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。