Leia um atributo namespaced de um SimpleXmlElement (importado de XMLReader)
Estou tentando ler um arquivo xml grande (cerca de 40 MB) e usar esses dados para atualizar o banco de dados do meu aplicativ
Parece que encontrei um bom compromisso em termos de tempo / memória decorrido usando XMLReader e simplexml_import_dom (), mas não consigo obter o valor dos atributos com dois pontos no nome deles ... por exemplo<g:attr_name>
.
Se eu simplesmente usar a função $ reader-> read () para cada nó "produto", posso recuperar o valor como $ reader-> value, mas se eu expandir () o nó e copiá-lo com $ doc-> importNode, este atributo são ignorados.
$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');
}
}
}
Provavelmente sinto falta de alguma coisa ... qualquer conselho seria realmente apreciado!
Obrigado