PLSQL从XML读取值(再次)?
问题描述:
我前段时间发布了一个question about how to read values from XML,并且有一个完美的答案,它非常简洁,但我无法理解它,并将其应用于其他一些XML!PLSQL从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>
我真的不舒服,因为我无法理解它!
答
从
'//SOAProxyResult'
到例如做同样的事情如answer you referenced,但改变XPath表达式(第二个参数XMLTYPE)
'//t:ItemId/@Id'
或
'//t:ItemId/@ChangeKey'
的第三个参数需要声明的T命名空间前缀:
'xmlns:t="foobarbaz"'
,当然你的输入XML将需要声明命名空间前缀了。
感谢分配,但这就是我从服务器获取XML的方式!没有命名空间! – 2011-03-22 15:19:36
我必须添加xmlns:t =“foobarbaz”xmlns:soap =“foobarbaz”xmlns:m =“foobarbaz”所以它会工作,hmmmmmmmm – 2011-03-22 15:21:24
不用担心我解决了它,我创建了一个函数,删除:SOAP,: t,:m,然后用命名空间运行它,完美地工作,谢谢你的帮助 – 2011-03-22 15:29:54