Reputation: 33
I'm not really a web developer and I'm trying to make a web interface for parsing and displaying experimental data, so I apologize if this is a ridiculously easy solution. I'm trying to take data from an XML element and convert it into a PHP numerical array that I can plot using GD. So far, I have the XML creation, XML loading, and GD plotting finished (I think), but what I need is the key to converting the data into a PHP array to finish.
I have an xml file with numeric data stored like this:
<?xml version="1.0" encoding="utf-8" ?>
<NotData>
<Data>0 1 2 3 4 5 6 7 8 9</Data>
</NotData>
I'm using simplexml_load_file to read in the data file. Then I pull out the data like this:
$myData=$xmldata->NotData[0]->Data;
Now I have an object with the data inside, but I'm not sure how to get this out into a numeric array.
Upvotes: 1
Views: 1967
Reputation: 401172
Considering you have that string, you first have to load it using 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);
I used simplexml_load_string
because it was simpler for my test ; of course, you can still use simplexml_load_file
, as you are already doing.
Then, to get the field containing the numbers into a variable :
$numbers_string = (string)$data->Data;
var_dump($numbers_string);
Which gets you :
string '0 1 2 3 4 5 6 7 8 9' (length=19)
And, then, you can use the explode
function to... well, explode... the string into an array, using a space as a separator :
$numbers_array = explode(' ', $numbers_string);
var_dump($numbers_array);
And you finally get this 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)
Which seems to be what you were waiting for ;-)
Upvotes: 3