Basit XML okuma soru (PHP)

3 Cevap php

Ben şu XML dosyası vardır:

    <?xml version="1.0" encoding="utf-8"?>
<SearchResults:searchresults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zillow.com/static/xsd/SearchResults.xsd /vstatic/279989c5e93d519f8d8f23d3f6cac661/static/xsd/SearchResults.xsd" xmlns:SearchResults="http://www.zillow.com/static/xsd/SearchResults.xsd">

<request>
<address>2114 Bigelow Ave</address>
<citystatezip>Seattle, WA</citystatezip>
</request>

<message>
<text>Request successfully processed</text>

<code>0</code>

</message>


<response>
<results>

<result>
<zpid>48749425</zpid>
<links>

<homedetails>http://www.zillow.com/homedetails/2114-Bigelow-Ave-N-Seattle-WA-98109/48749425_zpid/</homedetails>

<graphsanddata>http://www.zillow.com/homedetails/charts/48749425_zpid,1year_chartDuration/?cbt=3697699817560038867%7E3%7EQh4sEjEhBNEguUWA-0f22TvGUpBB7FpUkAZlBRy5_26R5PYjKDdVAA**</graphsanddata>

<mapthishome>http://www.zillow.com/homes/48749425_zpid/</mapthishome>

<myestimator>http://www.zillow.com/myestimator/Edit.htm?zprop=48749425</myestimator>
<myzestimator deprecated="true">http://www.zillow.com/myestimator/Edit.htm?zprop=48749425</myzestimator>

<comparables>http://www.zillow.com/homes/comps/48749425_zpid/</comparables>

</links>
<address>
<street>2114 Bigelow Ave N</street>
<zipcode>98109</zipcode>
<city>Seattle</city>
<state>WA</state>
<latitude>47.63793</latitude>

<longitude>-122.347936</longitude>
</address>


<zestimate>
<amount currency="USD">1112500</amount>
<last-updated>01/14/2010</last-updated>


<oneWeekChange deprecated="true"></oneWeekChange>


<valueChange duration="30" currency="USD">-77500</valueChange>



<valuationRange>
<low currency="USD">878875</low>
<high currency="USD">1145875</high>
</valuationRange>
<percentile>0</percentile>
</zestimate>
<localRealEstate>


<region id="271856" type="neighborhood" name="East Queen Anne">

<zindexValue>525,252</zindexValue>
<zindexOneYearChange>-0.104</zindexOneYearChange>

<links>
<overview>http://www.zillow.com/local-info/WA-Seattle/East-Queen-Anne/r_271856/</overview>
<forSaleByOwner>http://www.zillow.com/homes/fsbo/East-Queen-Anne-Seattle-WA/</forSaleByOwner>
<forSale>http://www.zillow.com/homes/for_sale/East-Queen-Anne-Seattle-WA/</forSale>

</links>
</region>

<region id="16037" type="city" name="Seattle">

<zindexValue>373,795</zindexValue>
<zindexOneYearChange>-0.064</zindexOneYearChange>

<links>
<overview>http://www.zillow.com/local-info/WA-Seattle/r_16037/</overview>

<forSaleByOwner>http://www.zillow.com/homes/fsbo/Seattle-WA/</forSaleByOwner>
<forSale>http://www.zillow.com/homes/for_sale/Seattle-WA/</forSale>
</links>
</region>

<region id="59" type="state" name="Washington">

<zindexValue>256,760</zindexValue>
<zindexOneYearChange>-0.074</zindexOneYearChange>


<links>
<overview>http://www.zillow.com/local-info/WA-home-value/r_59/</overview>
<forSaleByOwner>http://www.zillow.com/homes/fsbo/WA/</forSaleByOwner>
<forSale>http://www.zillow.com/homes/for_sale/WA/</forSale>
</links>
</region>

</localRealEstate>

</result>

</results>          
</response>

</SearchResults:searchresults>
<!-- H:118  T:102ms  S:1761  R:Fri Jan 15 10:52:49 PST 2010  B:3.0.79367-comp_rel_b -->

Zaten söyleyemem, bu Zillow API standart çıkış bulunuyor. Ben XPath aracılığıyla sorgulanan ben öğrendim bazı etiketleri arasındaki depolanan bilgilerin veri depolamak istiyor.

Örneğin, nasıl ben / SearchResults yılında verilerini sorgulamak istiyorum: SearchResults / istek / adresi? I / baskı değişken echo böyle bir şey yaptığını çalışmıyor:

$xml = simplexml_load_file("-truncated XML URL-");
$result = $xml->xpath('/SearchResults:searchresults/request/address')

Kimden ne anlıyorum, $ sonuç değişkeni olduğunu% BURADA DEĞER% yuvalanmış bulunan değer, doğru içermelidir? Ama "Array" yazdırır, ve ben print_r zaman, boş döner.

3 Cevap

İşte bu bilgi almak için basit bir yolu var:

<?php
    $xml = simplexml_load_file("test.xml");
    echo $xml->request->address;
?>

Sen tam ad değil, kısa adı kullanmanız gerekir.

Kullan http://simplepie.org

$xml = "yourxml code here";

$feed = new SimplePie();
$feed->set_raw_data($xml);
$feed->init();
$feed->handle_content_type();
echo $feed->get_adress();