嗨我的命名空间有问题
我的XML如下:
<earnings xmlns="http://www.dppvgu.com" currency="USD">
<distribution>15002111</distribution>
<ticket_sales>
<distribution num="2">24450144</distribution>
<distribution num="3">12057133</distribution>
</ticket_sales>
<digital_sales>
<ppv_sales>19220907</ppv_sales>
<stream_sales>49725265</stream_sales>
<disc_sales>15082021</disc_sales>
</digital_sales>
</earnings>
我想使用以下命令重命名节点<distribution>15002111</distribution>
:
for $doc in doc("earnings.xml")/*[local-name() = 'earnings']/*[local-name() = 'distribution']
return rename node $doc as 'postbox'
我收到以下错误:[XUDY0023] Conflicts with existing namespaces.
如何解决此问题?请帮忙
答案 0 :(得分:1)
尝试使用QName()
指定默认命名空间中的新名称:
for $doc in doc("earnings.xml")/*[local-name() = 'earnings']/*[local-name() = 'distribution']
return rename node $doc as QName('http://www.dppvgu.com','postbox')
或将QName()
与namespace-uri()
结合使用以避免对命名空间进行硬编码:
for $doc in doc("earnings.xml")/*[local-name() = 'earnings']/*[local-name() = 'distribution']
return rename node $doc as QName(namespace-uri($doc),'postbox')