问题是我需要从xml中提取数据,我知道如何提取它们,但是我不能传递前缀,也许你能帮忙
<ns2:PositiveInfo xmlns:ns2="http://ws.nGCR">
<BatchResponse xmlns="http://katana">
<Header>
<BatchId>11480644</BatchId>
<State>Finished</State>
<BeginTimeStamp>2022-09-10T10:21:48Z</BeginTimeStamp>
<TimeStamp>2022-09-10T10:21:50Z</TimeStamp>
<FinishTimeStamp>2022-09-10T10:21:50Z</FinishTimeStamp>
<Duration>2.3571</Duration>
<Identifier>600e19f5cc5b4707944b126cc8f6103a</Identifier>
<Subscriber>2810192</Subscriber>
.....
现在im在PositiveInfo
前缀中,如何到达BatchResponse
前缀?
到现在为止我有这样的疑问:
select *
from(
select unnest(xpath('/responseContainer/ns2:Report/ns2:Registers/ns2:PositiveInfo',
response_body::XML,
array[array['ns2','http://ws.nGCR']]))::XML as test
from stage_lt.cb_data_execution_entry_details deed
where id = 178752351)xx
1条答案
按热度按时间oyjwcjzk1#
要选择名称在
http://katana
名称空间中的BatchResponse
元素,需要将另一个前缀(例如katana
)绑定到名称空间URIhttp://katana
,就像将ns2
前缀绑定到名称空间URIhttp://ws.nGCR
一样,然后可以将katana:
用作XPath表达式中的名称空间前缀,例如/responseContainer/ns2:Report/ns2:Registers/ns2:PositiveInfo/katana:BatchResponse