2011-06-29 3 views
2

XMLファイルを解析しようとするときに、別のサイトからSimpleXMLを取得しようとしました。私は特定のプロパティの家賃を表示​​する必要があります。しかし、私は特定のプロパティのレンタルを表示したいだけです。 IDに基づいてProperty->Floorplan->MarketRent(Min and Max)をエコー、私はその後PHP:SimpleXMLを使用してXMLを解析する

Property->PropertyID->MITS:Identification->MITS:PrimaryID 

に基づいて、このファイルを解析する方法をhttp://dl.dropbox.com/u/1925679/example.xml

まず、:私はこのように構成されたXMLファイルを見たことがありませんか?

TIA !!!!

あなたはそう、あなたが唯一の彼らの上にループしており、フロアプランループを呼び出すが、病気にそれを残して、おそらくコムアップXPathクエリでのみに与えられたIDを持つプロパティを選択するか、すぐにIDの設定ができ
+0

あなたはネームスペース( "MITS:")によって捨てられていますか?そうであれば、それらについて心配する必要はありません。すべてのもの( "MITS:CompanyInfo")をノード名として扱ってください。 –

答えて

2
// get all properties 
$properties = $xml->xpath('//Property'); 

// get document namesapces in prefix => uri format 
$namespaces = $xml->getNamespaces(true); 


foreach($properies as $property) 
{ 
    // get namespaced nodes 
    $identification = $property->PropertyID->children($namespaces['MITS']); 
    $id = $identification->children($namespaces['MITS'])->PrimaryID; 

    // do your check id is an expected value or whatever and if so then... 

    foreach($property->Floorplan as $floorplan){ 
    { 
     echo $floorplan->MarketRent['min']; 
     echo $floorplan->MarketRent['max']; 
    } 
} 

あなたの調査:-)私はあなたがそのルートに行くなら、xpathと思う名前空間を登録する必要があると思うでしょう。確かにそれは自動ではありません。

+1

これは完全に機能しました!私がしなければならなかった唯一の変更は、$ xml-> getNamespaces(true)でした。ありがとう!!! – csm232s

+0

問題ありません!あなたはそれを働いてうれしいです。他人の利益のために調整して回答を更新します:-) – prodigitalson

関連する問題