질문:
SimpleXML이 처리할 수 없는 대용량 XML 파일의 경우 , XMLReader를 탐색 중이지만 데이터베이스에 요소 콘텐츠를 저장하는 방법에 대한 지침이 부족합니다. 이 프로세스에 대한 통찰력을 제공할 수 있습니까?
답변:
접근 방식은 작업 단위의 규모에 따라 다르며, 특히 개별 <제품>을 처리하는 경우에는 더욱 그렇습니다. ; 연속적으로 노드. 다음은 XMLReader와 SimpleXML을 결합한 전략입니다.
$z = new XMLReader; $z->open('data.xml'); $doc = new DOMDocument; // Move to the firstnode while ($z->read() && $z->name !== 'product'); // Iterate through nodes until the end of the tree while ($z->name === 'product') { // Either read outer XML as a string and import it as SimpleXML or import the node as DOM $node = new SimpleXMLElement($z->readOuterXML()); // $node = simplexml_import_dom($doc->importNode($z->expand(), true)); // Now you can access node content var_dump($node->element_1); // Move to the next node $z->next('product'); } 다양한 접근 방식의 장단점:
- XMLReader 전용: 빠름 , 메모리 사용량은 낮지만 코딩 및 작업이 까다롭습니다. debug.
- XMLReader SimpleXML: 메모리 사용량이 낮고 사용하기 쉽지만 SimpleXMLElement 객체 생성은 상대적으로 느릴 수 있습니다.
- XMLReader DOM: 메모리 SimpleXML과 유사한 사용법, 더 빠른 확장, 그러나 DOM 처리가 더 많을 수 있음 번거롭습니다.
권장 사항:
SimpleXML로 시작하여 성능을 평가하세요. 속도가 중요하다면 DOM을 고려해보세요. 그러나 오류 및 성능 문제의 위험을 줄이려면 코드베이스를 최소화하는 것이 중요합니다.
위 내용은 PHP에서 XMLReader를 효과적으로 사용하여 대용량 XML 파일 콘텐츠를 데이터베이스에 저장하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!