如果节点具有属性,如何从xml中检索值?

时间:2012-09-26 10:42:35

标签: php xml simplexml

  

可能重复:
  How to get an attribute with 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
);

XML DOM

2 个答案:

答案 0 :(得分:1)

看起来您正在使用SimpleXML来解析数据。 您可以查看here如何获取属性。

在你的情况下,它看起来像

$item->ItemAttributes->PackageDimensions->Weight->attributes()->Units

答案 1 :(得分:1)

simplexml库将返回该节点的对象。但你只想要它的文字。因此,您需要将其强制转换为字符串:

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

这将为文本提供该XML节点的字符串。


Simplexml documentationDocs中您可以在示例#6中比较元素和属性与文本

  

要将元素或属性与字符串进行比较或将其传递给需要字符串的函数,必须使用(字符串)将其强制转换为字符串。否则,PHP会将元素视为对象。

(string) $movies->movie->title