PLSQL从XML读取值(再次)?

时间:2011-03-22 15:02:09

标签: xml oracle plsql

我刚刚发布了一个question about how to read values from XML,并且有一个完美的答案,它是如此简洁但如此简单但我无法理解它并将其应用于其他一些XML !!!

有人可以帮我这个吗?我需要阅读“id”或“ChangeKey”

<soap:Envelope>
<soap:Header>
 <t:ServerVersionInfo MajorVersion="8" MinorVersion="2" MajorBuildNumber="217" MinorBuildNumber="0"/>
 </soap:Header>
<soap:Body>
<m:CreateItemResponse>
<m:ResponseMessages>
<m:CreateItemResponseMessage ResponseClass="Success">
 <m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:CalendarItem>
 <t:ItemId Id="erwrweff3424dfw23r2fwfwsfwsfg34fwdf2" ChangeKey="sdfwwerw4224rw"/>
 </t:CalendarItem>
 </m:Items>
 </m:CreateItemResponseMessage>
 </m:ResponseMessages>
 </m:CreateItemResponse>
 </soap:Body>
 </soap:Envelope>

我真的感觉不舒服,因为我无法理解它!

1 个答案:

答案 0 :(得分:1)

执行与answer you referenced相同的操作,但是从

更改XPath表达式(第二个参数为XMLTYPE)
'//SOAProxyResult'

到例如。

'//t:ItemId/@Id'

'//t:ItemId/@ChangeKey'

第三个参数需要声明t名称空间前缀:

'xmlns:t="foobarbaz"'

当然,您的输入XML也需要声明该命名空间前缀。