0

USPS Rate Calculator Web Tool API を使用したクエリからのこのサンプル/サンプル応答があります。

<service id="15">
    <pounds>0</pounds>
    <ounces>15</ounces>
    <mailtype>Package</mailtype>
    <container>RECTANGULAR</container>
    <size>LARGE</size>
    <width>2</width>
    <length>13</length>
    <height>13</height>
    <girth>30</girth>
    <country>ARGENTINA</country>
    <postage>16.25</postage>
    <extraservices>
        <extraservice>
            <serviceid>6</serviceid>
            <servicename>Certificate of Mailing</servicename>
            <available>True</available>
            <price>1.30</price>
        </extraservice>
        <extraservice>
            <serviceid>0</serviceid>
            <servicename>Registered Mail</servicename>
            <available>True</available>
            <price>13.65</price>
        </extraservice>
    </extraservices>
    <valueofcontents>32.25</valueofcontents>
    <inscomment>SERVICE</inscomment>
    <svccommitments>Varies by destination</svccommitments>
    <svcdescription>First-Class Package International Service&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt;**</svcdescription>
    <maxdimensions>Other than rolls: Max. length 24", max length, height and depth (thickness) combined 36"&lt;br&gt;Rolls: Max. length 36". Max length and twice the diameter combined 42"</maxdimensions>
    <maxweight>4</maxweight>
</service>
</package>
</intlratev2response>

これは応答全体の一部です。サービス要素は他に 2 つありますが、これが返したいノードです。(参考までに、親のクロージャーを下部に残しました。) これらのさまざまなサービス要素の ID は静的に見えますが、API には、これらが使用可能であることを示すものは何もありません。要するに、私は彼らに頼ることに消極的です。このノードの重要な識別子は、SvcDescription = First-Class Package International Service です。いくつかの html でエンコードされた hooey が続きますが、これは私が見つけようとしている要素であり、その親を SimpleXMLElement に格納します。

これは、xpath での私のベスト ショットです。

$rate = $result->xpath('//Service[SvcDescription="*First-Class Package International Service"]/Postage');

var_dump($rate) を実行すると、空の配列が返されます。私はこれを何時間もいじっています。私はいくつかのガイダンスを使用できます。さらに詳しい情報が必要な場合はお知らせください。ご協力いただきありがとうございます。

4

1 に答える 1