Oracle:如何使用XMLElement()在特定命名空间中创建元素

时间:2009-01-13 01:17:56

标签: xml oracle

在Oracle中,您可以使用XMLElement()函数创建元素,如:

XMLElement('name', 'John')

但是如何在特定命名空间中创建元素?例如,如何创建以下元素:

<my:name xmlns:my="http://www.example.com/my">John</my:name>

2 个答案:

答案 0 :(得分:9)

您还可以使用XMLAttribute:

select xmlelement("my:name",
        xmlattributes('http://www.example.com/my' as "xmlns:my"),
        'John'
       )
from dual

将返回:

<my:name xmlns:my="http://www.example.com/my">John</my:name>

您还可以检查Oracle是否将其识别为命名空间(除了您没有获得命名空间前缀“my”未声明错误):

select xmlelement("my:name",
        xmlattributes('http://www.example.com/my' as "xmlns:my"),
        'John'
       ).getnamespace()
from dual

将返回:

http://www.example.com/my

答案 1 :(得分:1)

而不是XMLElement()使用:

XMLType('<my:name xmlns:my="http://www.example.com/my">John</my:name>')

是的,就这么简单。