V
V
Vlados Landos2020-03-04 09:49:10
PHP
Vlados Landos, 2020-03-04 09:49:10

Why doesn't simplexml_load_string() understand a valid xml string?

There is a line with xml, this is her wardump

string(941) "<?xml version="1.0"?><stats><breakdown date="2020-02-26"><responses>690292</responses><impressions>103203</impressions><revenue>142.1773</revenue></breakdown><breakdown date="2020-02-27"><responses>679646</responses><impressions>105329</impressions><revenue>60.7610</revenue></breakdown><breakdown date="2020-02-28"><responses>908865</responses><impressions>136551</impressions><revenue>68.2343</revenue></breakdown><breakdown date="2020-02-29"><responses>1268946</responses><impressions>248969</impressions><revenue>91.9452</revenue></breakdown><breakdown date="2020-03-01"><responses>926947</responses><impressions>195786</impressions><revenue>85.0645</revenue></breakdown><breakdown date="2020-03-02"><responses>528795</responses><impressions>67999</impressions><revenue>46.4714</revenue></breakdown><breakdown date="2020-03-03"><responses>903159</responses><impressions>124702</impressions><revenue>100.8346</revenue></breakdown></stats>"

function simplexml_load_string($this->xml); gives an error Error: Fatal error: Uncaught Exception: String could not be parsed as XML Xml checked by the validator everything is OK, help with the solution, google did not find it or googled it incorrectly, what flag is needed or what should I do first?
$this->xml = simplexml_load_string($this->xml);


Answer the question

In order to leave comments, you need to log in

3 answer(s)
E
Eugene, 2020-03-04
@whatslve

Everything works

<?php
$string = '<?xml version="1.0"?><stats><breakdown date="2020-02-26"><responses>690292</responses><impressions>103203</impressions><revenue>142.1773</revenue></breakdown><breakdown date="2020-02-27"><responses>679646</responses><impressions>105329</impressions><revenue>60.7610</revenue></breakdown><breakdown date="2020-02-28"><responses>908865</responses><impressions>136551</impressions><revenue>68.2343</revenue></breakdown><breakdown date="2020-02-29"><responses>1268946</responses><impressions>248969</impressions><revenue>91.9452</revenue></breakdown><breakdown date="2020-03-01"><responses>926947</responses><impressions>195786</impressions><revenue>85.0645</revenue></breakdown><breakdown date="2020-03-02"><responses>528795</responses><impressions>67999</impressions><revenue>46.4714</revenue></breakdown><breakdown date="2020-03-03"><responses>903159</responses><impressions>124702</impressions><revenue>100.8346</revenue></breakdown></stats>';
$xml =  simplexml_load_string($string);
var_dump($xml->breakdown);

A
anikavoi, 2020-03-04
@anikavoi

What is the decimal separator set on the system?
I somehow had a similar situation, and there was a comma separator, so the parser considered the numbers invalid, and, accordingly, could not recognize the string as valid.

V
Vitaly Artemyev, 2020-03-04
@Vitaly48

Try to delete<?xml version="1.0"?>

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question