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&lt;sup&gt;&#8482;&lt;/sup&gt;**</svcdescription>
<maxdimensions>Other than rolls: Max. length 24", max length, height and depth (thickness) combined 36"<br>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) を実行すると、空の配列が返されます。私はこれを何時間もいじっています。私はいくつかのガイダンスを使用できます。さらに詳しい情報が必要な場合はお知らせください。ご協力いただきありがとうございます。