gpt4 book ai didi

sql - 通过 SQL EXTRACTVALUE 命名空间 XML 的 XPath 失败?

转载 作者:行者123 更新时间:2023-12-03 17:21:44 24 4
gpt4 key购买 nike

我正在尝试解析 FaultMessage来自使用 EXTRACTVALUE 的 XML 响应.下面是我的 SQL 代码:

SELECT EXTRACTVALUE( XMLTYPE('
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring xml:lang="tr-TR">İstek şeması doğrulanamadı. Lütfen tüm bilgileri kontrol edin.</faultstring>
<detail>
<Fault xmlns="http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FaultCode>Schema_Customer_005|1e8c66-c333-4357-9c7d-3f4fcd553</FaultCode>
<FaulCategory>Schema</FaulCategory>
<FaultMessage> Customer name can not be blank, can not contain spaces, or any special characters. LASTNAMEFIRSTNAME is the required format. </FaultMessage>
<FaultDetailedMessage>UMUT DEMIRCI</FaultDetailedMessage>
</Fault>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>'),
'/s:Envelope/s:Body/s:Fault/detail/*:Fault/FaultMessage',
'xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract" ') a
FROM DUAL

请建议我如何获得 FaultMessage .

最佳答案

给定:

  • 越深Fault元素 及其后代http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract命名空间。
  • 您似乎已经定义了 a http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract 的命名空间前缀
  • 使用 *作为命名空间前缀的通配符需要 XPath 2.0+。

  • 更改
    /s:Envelope/s:Body/s:Fault/detail/*:Fault/FaultMessage


    /s:Envelope/s:Body/s:Fault/detail/a:Fault/a:FaultMessage

    这样您的 XPath 将是正确的,并且不需要 XPath 2.0+ 处理器。

    关于sql - 通过 SQL EXTRACTVALUE 命名空间 XML 的 XPath 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55852423/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com