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);

我明白这个...

[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

2 回答 2

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 标记的内容作为字符串返回。

于 2013-03-29T18:53:47.937 回答
1

如果您将 a 类型转换SimpleXMLElement为字符串,您将获得它的值。所以这应该工作:

array_push($data, array(
    "text" => (string)$text,                
    "spot" => (string)$play,
    "ball" => (string)$hasball,
    "togo" => (string)$togo,
    "type" => (string)$type,
    "drive"=> (string)$drive)
);
于 2013-03-29T18:54:10.587 回答