Я пишу программу, которая читает некоторые XML-данные из переменной $ _POST, а затем анализирует их, используя PHP XMLReader и извлеченные данные, вводимые в базу данных. Я использую XMLReader, поскольку предоставленный XML, скорее всего, будет слишком большим для размещения в памяти.
Однако у меня возникли некоторые проблемы, мой XML и основной код выглядят следующим образом:
'<?xml version="1.0"?>
<data_root>
<data>
<info>value</info>
</data>
<action>value</action>
</data_root>'
$request = $_REQUEST['xml'];
$reader = new XMLReader();
$reader->XML($request);
while($reader->read()){
//processing code
}
$reader->close()
Моя проблема в том, что код будет отлично работать, если передаваемый XML не имеет строки <?xml version="1.0"?>
, но если я включу его, и он будет включен, когда приложение перейдет в живую производственную среду, $reader->read()
код для цикла while не работает, и XML не анализируется в цикле while.
Кто-нибудь видел подобное поведение раньше или знает, почему это может происходить?
Заранее спасибо.