2011-02-07 2 views
0

Как извлечь данные из этого XML-объекта, который является значением некоторого массива:Извлечение данных из объекта XML

Array ([Title] => SimpleXMLElement Object ( 
[0] => The Key of Life; A Metaphysical Investigation) 
[ASIN] => SimpleXMLElement Object ([0] => 0982385099) ... 
+0

возможно дубликат [Извлечение данных из объекта XML] (http://stackoverflow.com/questions/4917998/extract-data-from-an-xml-object) –

ответ

0

Do струнных типажи объекта.

$ variable = (string) $ FieldValue [0];

Это будет работать, поскольку SimpleXml имеет все дочерние элементы в типе объекта, а не в строке.

0

сказать $ X является объектом, поэтому для печати

Ключ жизни; Метафизической Исследования

вы:

echo $X->Title[0] 
+0

Я сделал для каждого из массива вроде: foreach ($ ArrayName как $ FieldLabel => $ FieldValue) {$ Variable = $ FieldValue [0]. ...} но все же он получает весь объект xml в качестве значения поля. Я хотел, чтобы он извлекал значение только не для всего объекта. – JCm

0

Важно понимать, что вы не работаете с массивом - вы работаете с объектом SimpleXMLElement, что не то же самое.

  1. Вместо того, чтобы делать $array['key']['subkey'], вы бы сделали $xml->tag->subtag.
  2. Узлы SimpleXML не являются строками или массивами, хотя они ведут себя как строковые и массивные. Убедитесь, что вы всегда указываете значение на явную строку.
  3. Если вы обращаетесь к первому узлу, вам не нужно использовать [0]. Предполагается.
  4. Вы можете конвертировать SimpleXMLElement объекты в истинные ассоциативные массивы в PHP 5.2 или новее с:

    $array = json_decode(json_encode($xml), true);

Смежные вопросы