Я пытаюсь прочитать большой xml-файл (около 40 МБ) и использовать эти данные для обновления базы данных мое приложение.
Кажется, я нашел хороший компромисс с точки зрения затраченного времени / памяти с помощью XMLReader и simplexml_import_dom (), но я не могу получить значения атрибутов с двоеточием в их имени ... например
.
Если я просто использую функцию $ reader-> read () для каждого "продукта" узел я могу получить значение как $ reader-> value, но если я разверну () узел и скопирую его с помощью $ doc-> importNode, эти атрибуты будут проигнорированы.
$reader = new XMLReader();
$reader->open(__XML_FILE__);
$doc = new DOMDocument;
while ($reader->read()) {
switch ($reader->nodeType) {
case (XMLREADER::ELEMENT):
if($reader->localName=="product"){
$node = simplexml_import_dom($doc->importNode($reader->expand(), true));
echo $node->attr_name."<br><br>";
$reader->next('product');
}
}
}
Возможно, я что-то пропустил ... любой совет был бы действительно оценен!
Спасибо.