PHP를 사용하여 큰 XML 파일 (Excel .xlsm 파일에서 추출)을 편집하려고하는데 성능면에서 가장 좋은 것이 궁금합니다. QueryPath 또는 PHP의 DOMDocument?큰 XML 파일을 편집하기위한 QueryPath 또는 DOMDocument?
파일의 무게는 최소 8MB이며, 서식이 지정된 경우 약 400k 줄이 포함됩니다. 피드백
PHP를 사용하여 큰 XML 파일 (Excel .xlsm 파일에서 추출)을 편집하려고하는데 성능면에서 가장 좋은 것이 궁금합니다. QueryPath 또는 PHP의 DOMDocument?큰 XML 파일을 편집하기위한 QueryPath 또는 DOMDocument?
파일의 무게는 최소 8MB이며, 서식이 지정된 경우 약 400k 줄이 포함됩니다. 피드백
QueryPath에 대한
감사는 기본적으로 DOMDocument
주변 단지 래퍼입니다. 그것은 DOMDocument
개체에 비교적 적은 오버 헤드를 추가합니다. attr()
, append()
등과 같은 액세스 및 쓰기 작업에 대해서는 성능 차이가 없어야합니다.
그러나 큰 문제는 다음과 같습니다. 찾기.
전통적으로 DOMDocument
은 "나무를 걷는 것"또는 DOMNode->getElementsByTagname()
을 사용하여 트래버스합니다. 코드를 기꺼이 작성하면 비교적 잘 수행됩니다.
매우 구체적인 선택기 (예 : ': root> foo> bar> baz')를 사용하지 않으면 QueryPath 2.x로 쿼리하는 것이 문서의 크기가 느려질 수 있습니다.
그러나 큰 개체를 쿼리 할 때 Alpha1에 들어가는 QueryPath 3.x는 여러 번 더 빠르게 실행됩니다. qp('foo')
을 수행하는 것은 XPath만큼 빠르며 ... 나를 마지막 옵션으로 가져옵니다.
PHP의 libxml 지원과 함께 제공되는 XPath 프로세서가 내장되어 있습니다. PHP 속도가 아닌 C 속도로 실행되기 때문에 대형 XML 문서를 작성하면 성능이 향상 될 수 있습니다. 하지만 (IMHO) 일종의 통증 인 XPath 표현식을 작성해야합니다.
그래서 결론 :
피드백을 주셔서 감사합니다. QueryPath 3.x에 대해 몰랐기 때문에 2.2 버전을 버리고 PHP의 DOMDocument를 사용했습니다. XML 구조는 이해하기 쉽고, 매우 깊지도 않습니다 (제 경우에는 최대 5 단계까지). 따라서 사용하는 데 큰 고통이 아닙니다 ... – 3rgo