プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 29.17 PARSE_XMLファンクション

このファンクションを使用して、XMLTYPEとして戻されたWebサービスからのレスポンスを解析し、リクエストされた値をVARCHAR2として戻します。

構文

    APEX_WEB_SERVICE.PARSE_XML (
        p_xml               IN XMLTYPE,
        p_xpath             IN VARCHAR2,
        p_ns                IN VARCHAR2 default null )
    RETURN VARCHAR2;

パラメータ

表29-11 PARSE_XMLファンクションのパラメータ

パラメータ | 説明
--- | ---
`p_xml` | 解析するXMLTYPEとしてのXML文書。
`p_xpath` | 目的のノードへのXPath式。
`p_ns` | 目的のノードへのネームスペース。

例

次の例では、`make_request`ファンクションを使用してWebサービスをコールし、結果をローカルのXMLTYPE変数に格納します。その後、`XMLTYPE`に格納されたXML文書の特定ノードの取得に`parse_xml`ファンクションが使用され、その結果をローカルに宣言されたVARCHAR2変数に格納します。

    declare
        l_envelope CLOB;
        l_xml XMLTYPE;
        l_movie VARCHAR2(4000);
    BEGIN
        l_envelope := ' <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:tns="http://www.ignyte.com/whatsshowing"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <soap:Body>
          <tns:GetTheatersAndMovies>
             <tns:zipCode>43221</tns:zipCode>
             <tns:radius>5</tns:radius>
          </tns:GetTheatersAndMovies>
       </soap:Body>
    </soap:Envelope>';

       l_xml := apex_web_service.make_request(
         p_url => ' http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx',
         p_action => ' http://www.ignyte.com/whatsshowing/GetTheatersAndMovies',
         p_envelope => l_envelope );

       l_movie := apex_web_service.parse_xml(
         p_xml => l_xml,
         p_xpath => ' //GetTheatersAndMoviesResponse/GetTheatersAndMoviesResult/Theater/Movies/Movie/Name[1]',
         p_ns => ' xmlns="http://www.ignyte.com/whatsshowing"' );

    END;