2016-04-11 5 views
0

Я пытаюсь извлечь данные из массива json, но всегда получаю пустую строку.Извлечь данные из массива JSON с помощью php

Мой XML:

<?xml version="1.0" encoding="UTF-8"?> 
<ItemList> 
     <Entry Item = "test1" Object = "1tset" /> 
     <Entry Item = "test2" Object = "2tset" /> 
</ItemList> 

Мой самосвала из XML:

array(1) { ["Entry"]=> array(2) 
{ [0]=> array(1) { ["@attributes"]=> array(2) { ["Item"]=> string(5) "test1" ["Object"]=> string(5) "1tset" } } 
[1]=> array(1) { ["@attributes"]=> array(2) { ["Item"]=> string(5) "test2" ["Object"]=> string(5) "2tset" } } } } 

Мой код PHP:

$xmlString = "my.xml"; 
$xmlObject = simplexml_load_file($xmlString); 
$xmltovar = json_decode(json_encode($xmlObject), true); 


foreach($xmltovar['Entry'] as $test) { 

    echo $test['Item']."<br>"; 
} 

мне нужно, чтобы получить все "Пункт" или "объект" из ItemList-> Entry Tag.

ответ

1

После кодирования и декодирования вашего $xmltovar, как это:

Array 
(
    [Entry] => Array 
     (
      [0] => Array 
       (
        [@attributes] => Array 
         (
          [Item] => test1 
          [Object] => 1tset 
         ) 

       ) 

      [1] => Array 
       (
        [@attributes] => Array 
         (
          [Item] => test2 
          [Object] => 2tset 
         ) 

       ) 

     ) 

) 

Так вместо:

echo $test['Item']."<br>"; 

пишут:

echo $test['@attributes']['Item']."<br>"; 

То же самое относится и к объекту.

0

Ваш PHP должен быть выглядеть следующим образом

<?php 

$xmlString = "my.xml"; 
$xmlObject = simplexml_load_file($xmlString); 
$xmltovar = json_decode(json_encode($xmlObject), true); 


foreach($xmltovar['Entry'] as $test) { 
    echo $test["@attributes"]['Item']."<br>"; 
} 

?> 
0

$ тест [ '@ атрибуты'] [ 'Item'] для пункта

$ тест [ '@ атрибуты'] [ 'Object'] для объекта

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