首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从oracle中现有XML子树中删除命名空间

如何从oracle中现有XML子树中删除命名空间
EN

Stack Overflow用户
提问于 2014-06-19 21:48:46
回答 1查看 1.3K关注 0票数 1

我面临着从现有xml子树中删除名称空间的问题。

例如:我有一个表,其中有一个字段数据类型为xmltype。其中一个条目包含此xml:

代码语言:javascript
复制
<Item xmlns="http://www.w3.org/2001/XMLSchema-instance">
  <Box>Blaff</Box>
  <Door>Steal</Door>
  <Chair>Wood</Chair>
</Item>

我想删除名称空间-即:

代码语言:javascript
复制
<Item>
  <Box>Black-box</Box>
  <Door>Steal</Door>
  <Chair>Wood</Chair>
</Item>

你有什么建议吗?-我试过使用UPDATE()函数,但没有成功。非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 19:38:34

一种想法是将其转换为clob,然后替换名称空间字符串并将其转换回xml:

代码语言:javascript
复制
            with xtab as (
            select xmltype('<Item xmlns="http://www.w3.org/2001/XMLSchema-instance">
              <Box>Blaff</Box>
              <Door>Steal</Door>
              <Chair>Wood</Chair>
            </Item>') my_xml from dual)
            select xmltype(replace(xmltype.getclobval(my_xml), 
                          ' xmlns="http://www.w3.org/2001/XMLSchema-instance"', ''))  clo
            from xtab;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24308225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档