2017-12-22 22 views
0

PHPのXMLファイルからいくつかのフィールドを抽出しようとしています。これはほとんどのフィールドで機能しますが、それらのうちのいくつかがエラーを出すのですが、理由を理解できません。PHPでXMLファイルからフィールドを取得

XMLの例:

<products> 
    <product> 
    <ns2:name>Some name</ns2:name> 
    <offers> 
     <offer id="123"> 
     <ns2:productUrl>https://www.something.here</ns2:productUrl> 
     <priceHistory> 
      <ns2:price currency="EUR">299.00</ns2:price> 
     </priceHistory> 
     </offer> 
    </offers> 
    </product> 
</products> 

私はすでに名前があります。

$name = mysql_real_escape_string($products->product->children('ns2', true)->name); 

を私は価格とProductUrlのために同じことをやってみたかったが、それは動作しません:

$URL = $products->product->offers->offer->children('ns2',true)->productUrl;  
$price = $products->product->offers->offer->priceHistory->children('ns2', true)->price; 

誰かがなぜこれがうまくいかず、どうやって製品と価格を手に入れることができるのか教えていただけますか?

+0

「それは機能しません」とはどういう意味ですか?これらの行は、正しい要素を返す必要があります。https://eval.in/924453 – iainn

+0

を参照してください。http://php.net/manual/en/domxpath.registernamespace.phpおそらく – RamRaider

+0

を見てください。最初のエラーは通知です:試行非オブジェクトのプロパティを取得します。 2番目のエラーは致命的なエラーです。ヌルのメンバー関数children()を呼び出します。 $ URLを取得する行の両方。スクリプトは、2番目のエラーの後にさらに進みません。 – MNL

答えて

0

トップレベルに2人の子供がいるようです。最初のデータはデータなし。それがエラーの原因です。 nullを受け取り、明らかに機能しなかったnullの子を取得したい

関連する問題