2017-02-05 5 views
0

これはWA州のDOR WebサイトからのXMLです。多次元配列に2番目のレベルの要素を抽出するには

<?xml version="1.0" encoding="UTF-8"?> 
<response loccode="3406" localrate="0.024" rate="0.089" code="0"> 
<addressline houselow="6500" househigh="6598" evenodd="E" street="LINDERSON WAY SW" state="WA" zip="98501" plus4="6561" period="Q12017" code="3406" rta="N" ptba="Thurston PTBA" cez=""/> 
<rate name="TUMWATER" code="3406" staterate="0.065" localrate="0.024"/></response> 

PHPコマンド 'simplexml_load_string'を使用して配列に変換しました。

SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [loccode] => 1726 
      [localrate] => 0.031 
      [rate] => 0.096 
      [code] => 0 
     ) 
    [addressline] => SimpleXMLElement Object 
     (
      [@attributes] => Array 
       (
        [houselow] => 5201 
        [househigh] => 5299 
        [evenodd] => O 
        [street] => 37TH AVE S 
        [state] => WA 
        [zip] => 98118 
        [plus4] => 6115 
        [period] => Q12017 
        [code] => 1726 
        [rta] => Y 
        [ptba] => King PTBA 
        [cez] => Duwamish 
       ) 
     ) 
    [rate] => SimpleXMLElement Object 
     (
      [@attributes] => Array 
       (
        [name] => SEATTLE 
        [code] => 1726 
        [staterate] => 0.065 
        [localrate] => 0.031 
       ) 
     ) 
) 

私は2つの要素が第1のレベルを形成し、私は要素が第2レベルを形成する必要が引くことができました。私はこれを6時間以上調べてテストしました。私は配列またはXMLから 'plus4'の値を引き出すのに助けが必要です。 ここに私の試みはこれまでのところです:

<?php 
$addr1 = "5211 37th Ave S"; 
`enter code here`$city = "seattle"; 
$zip = "98118"; 
$postdata = array("output"=>"xml", "addr"=>urlencode($addr1), "city"=>urlencode($city), "zip"=>$zip); 
$url = "http://dor.wa.gov/AddressRates.aspx"; 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST , 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS , $postdata); 
$return = curl_exec($ch); 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
if ($return === FALSE) { 
echo "cURL Error: " . curl_error($ch); } 
curl_close($ch); 
$xml=simplexml_load_string($return) or die("Error: Cannot create object"); 

echo "Localation Code: " . $xml['loccode']; 
echo "<br>Tax Rate: " . $xml['rate']; 

echo "<br>" . $xml[1]['plus4']; 
?> 
+0

質問を正しく編集 – neophyte

答えて

0

はこの$ XML-> addressline [ 'PLUS4']を試してみてください。 XMLはオブジェクトです。

関連する問題