2013-03-29 37 views
2
$drivetracker = simplexml_load_file('geot_5980.xml'); 
$data = array(); 
foreach ($drivetracker->plays->qtr as $qtr): 
foreach ($qtr->play as $myplay): 
$hasball = $myplay['hasball']; 
$play = $myplay['spot']; 
$down = $myplay['down']; 
$togo = $myplay['togo']; 
$type = $myplay['type']; 
$text = $myplay['text']; 
array_push($data, array("text" => $text,     
      "spot" => $play, 
      "ball" => $hasball, 
      "togo" => $togo, 
      "type" => $type, 
      "drive"=> $drive) 
       ); 
endforeach; 
endforeach; 
print_r($data); 

我得到這個解析...轉換SimpleXMLElement對象,而從XML

[16] => Array 
     (
      [text] => SimpleXMLElement Object 
       (
        [0] => Tanner, C. kick attempt good. 
       ) 

      [spot] => SimpleXMLElement Object 
       (
        [0] => DU03 
       ) 

      [ball] => SimpleXMLElement Object 
       (
        [0] => GT 
       ) 

      [togo] => SimpleXMLElement Object 
       (
        [0] => 0 
       ) 

      [type] => SimpleXMLElement Object 
       (
        [0] => X 
       ) 

      [drive] => 7 
     ) 

    [17] => Array 
     (
      [text] => SimpleXMLElement Object 
       (
        [0] => Tanner, C. kickoff 51 yards to the DU14, Butler, L return 16 yards to the DU30 (Noble, D.). 
       ) 

      [spot] => SimpleXMLElement Object 
       (
        [0] => GT35 
       ) 

      [ball] => SimpleXMLElement Object 
       (
        [0] => GT 
       ) 

      [togo] => SimpleXMLElement Object 
       (
        [0] => 0 
       ) 

      [type] => SimpleXMLElement Object 
       (
        [0] => K 
       ) 

      [drive] => 7 
     ) 

) 

我的問題是...我如何使

[text] => SimpleXMLElement Object 
       (
        [0] => Tanner, C. kick attempt good. 
       ) 

它,這樣反而讓我

[text] = > "Tanner, C. kick attempt good." 

回答

4

而不是:

$hasball = $myplay['hasball']; 
$play = $myplay['spot']; 
$down = $myplay['down']; 
$togo = $myplay['togo']; 
$type = $myplay['type']; 
$text = $myplay['text']; 

要撥打:

$hasball = (string) $myplay['hasball']; 
$play = (string) $myplay['spot']; 
$down = (string) $myplay['down']; 
$togo = (string) $myplay['togo']; 
$type = (string) $myplay['type']; 
$text = (string) $myplay['text']; 

通過與(string)鑄造,它會返回XML標籤的內容作爲一個字符串。

1

如果您將字符串轉換爲SimpleXMLElement,您將獲得其值。所以這應該工作:

array_push($data, array(
    "text" => (string)$text,     
    "spot" => (string)$play, 
    "ball" => (string)$hasball, 
    "togo" => (string)$togo, 
    "type" => (string)$type, 
    "drive"=> (string)$drive) 
);