2

重複の可能性:
SimpleXML で属性を取得するには?

高さ、長さ、重さ、幅の値を取得するにはどうすればよいですか? 属性があるから?他の値では、取得に問題はありません。この値だけに属性があります。

注:高さ、長さ、重さ、幅の部分だけが問題です

取得方法は次のとおりです。

$from_amazon = array(
   'asin'     => $item->ASIN,
   'product_name'
              => $item->ItemAttributes->Title, 
   'image'    => $item->SmallImage->URL,
   'price'    => $item->ItemAttributes->ListPrice->FormattedPrice, 
   'product_description'
              => $item->EditorialReviews->EditorialReview->Content,
   'category' => $item->ItemAttributes->ProductGroup,
   'weight'   => $item->ItemAttributes->PackageDimensions->Weight
);

XMLDOM

4

2 に答える 2

1

simplexml ライブラリは、そのノードのオブジェクトを返します。ただし、必要なのはテキストだけです。したがって、文字列にキャストする必要があります。

'weight'   => (string) $item->ItemAttributes->PackageDimensions->Weight
              ^^^^^^^^

これにより、その XML ノードの文字列としてテキストが得られます。


Simplexml ドキュメンテーションDocsでは、 Example #6 Comparing Elements and Attributes with Textで次のことがわかります。

要素または属性を文字列と比較したり、文字列を必要とする関数に渡したりするには、(string) を使用して文字列にキャストする必要があります。それ以外の場合、PHP は要素をオブジェクトとして扱います。

(string) $movies->movie->title
于 2012-09-26T11:19:38.183 に答える
1

SimpleXML を使用してデータを解析しているようです。属性を取得する方法については、こちらを参照してください。

あなたの場合、それは次のようになります

$item->ItemAttributes->PackageDimensions->Weight->attributes()->Units
于 2012-09-26T10:56:06.800 に答える