如何使用 xPath (10g) 在 Oracle SQL extract() 中获取节点名称

Posted

技术标签:

【中文标题】如何使用 xPath (10g) 在 Oracle SQL extract() 中获取节点名称【英文标题】:how to get node name in Oracle SQL extract() with xPath (10g) 【发布时间】:2012-10-09 11:52:27 【问题描述】:

这是一个 XML 文件:

<ROOT>
<A>
    <B>2</B>
    <C>3</C>
    <D>4</D>
</A> 
</ROOT>

如何通过xPath获取标签名称“C”。函数 name() 在extract 中不起作用。

它报告错误:

ORA-31011: XML 解析失败 ORA-19202: XML 处理中发生错误 LPX-00601:无效的令牌

gXmlDOM是上面的xml字符串,在SQL中怎么做?

select XMLType(gXmlDOM).extract(p_xmlPath).getStringVal() from dual;

【问题讨论】:

p_xmlPath 列的内容是什么? 就是xpath字符串,比如“/ROOT/A” 【参考方案1】:

这可能就是你要找的……

Select xmltype('<ROOT><A><B>2</B><C>3</C><D>4</D></A></ROOT>')
       .extract('ROOT/A/*[2]')
       .getrootelement()
  From dual;

【讨论】:

以上是关于如何使用 xPath (10g) 在 Oracle SQL extract() 中获取节点名称的主要内容,如果未能解决你的问题,请参考以下文章

oracle 10g中如何缓存函数的查询结果?

如何在 java 中使用 jdbc 为 oracle 10g 执行 log miner PL/SQL 查询

如何将 oracle 11g 用户导出到 10g 和不同的默认表空间

如何重新编译使用 Oracle 10g 的 Wrap 实用程序加密的无效 PLSQL 包?

如何在网站www.oracle.com下载oracle 10g

如何连接到PC上的默认Oracle10g实例?