如何将XML元素数据转换为PHP数值数组

时间:2010-02-10 19:40:47

标签: php xml import

我不是一个真正的Web开发人员,我正在尝试创建一个用于解析和显示实验数据的Web界面,所以如果这是一个非常简单的解决方案,我会道歉。我正在尝试从XML元素中获取数据并将其转换为可以使用GD绘制的PHP数值数组。到目前为止,我已经完成了XML创建,XML加载和GD绘图(我认为),但我需要的是将数据转换为PHP数组以完成的关键。

我有一个xml文件,其数字数据存储如下:

<?xml version="1.0" encoding="utf-8" ?>
<NotData>
    <Data>0 1 2 3 4 5 6 7 8 9</Data>
</NotData>

我正在使用simplexml_load_file来读入数据文件。然后我拿出这样的数据:

$myData=$xmldata->NotData[0]->Data;

现在我有一个包含数据的对象,但我不知道如何将其转换为数字数组。

1 个答案:

答案 0 :(得分:3)

考虑到您拥有该字符串,首先必须使用SimpleXML加载它:

$str = <<<XML
<?xml version="1.0" encoding="utf-8" ?>
<NotData>
    <Data>0 1 2 3 4 5 6 7 8 9</Data>
</NotData>
XML;
$data = simplexml_load_string($str);

我使用simplexml_load_string,因为我的测试更简单;当然,您仍然可以使用simplexml_load_file,正如您已经在做的那样。


然后,将包含数字的字段放入变量中:

$numbers_string = (string)$data->Data;
var_dump($numbers_string);

哪个可以帮到你:

string '0 1 2 3 4 5 6 7 8 9' (length=19)


然后,你可以使用explode函数......好吧,将字符串分解为数组,使用空格作为分隔符:

$numbers_array = explode(' ', $numbers_string);
var_dump($numbers_array);

你终于得到了这个数组:

array
  0 => string '0' (length=1)
  1 => string '1' (length=1)
  2 => string '2' (length=1)
  3 => string '3' (length=1)
  4 => string '4' (length=1)
  5 => string '5' (length=1)
  6 => string '6' (length=1)
  7 => string '7' (length=1)
  8 => string '8' (length=1)
  9 => string '9' (length=1)

这似乎是你在等待的东西; - )