2012-05-16 4 views
2

나는 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 나는 기본적으로 약 10-15 개의 XML 피드를 가져올 PHP 애플리케이션을 작성 중이며 각기 다른 형식의 약 30 개의 노드를 사용하고 다양한 카테고리로 클러스터링한다. 지금까지 나는 각 피드를 XSLT를 통해 표준화 된 형식 (XML 요소가 모든 출력 필드에서 표준화되어 있음)으로 변환/매핑하는 PHP 부분을 작성할 수있었습니다. 나는 간단한 include를 할 수 있고 그것들을 모두 하나의 피드를 출력하기 위해 포함시킬 수있다. 문제는 feed가 현재 노드 당 17 개의 요소가있는 약 400-500 개의 노드이며 영원히로드에 걸리는 문제라는 것이다. 그게 내가 붙어있어 XMLReader/XMLWriter 명령을 시도했지만 XML Writer에서 오류가 발생했습니다. 나는 아래의 코드XML을 사용한 XML 병합 최적화

$xml1 = new XMLReader(); 
$xml1->open('convert1.php'); 

$xml2 = new XMLReader(); 
$xml2->open('convert2.php'); 
    $name = 'xmlroot'; 

    $write = new XMLWriter(); 
    $write->startElement($name); 

을 사용하고이다 오류가 나는 얻을 :

<xmlroot> 
<xmlnode> 
<xmlelement></xmlelement> 
</xmlnode> 
</xmlroot> 

변환 PHP 코드 :

<?php 

$xml = new DOMDocument(); 
$xml->load('xmlfeed'); 

$xsl = new DOMDocument; 
$xsl->load('xsl.xsl'); 

$proc = new XSLTProcessor(); 
$proc->importStyleSheet($xsl); 

echo $proc->transformToXML($xml); 

Warning: XMLWriter::startElement() [xmlwriter.startelement]: Invalid or unitialized XMLWriter object in C:\wamp\www\mergetest\merge1.php on line 22 

내 XML은 다음과 같이 구성되어있다

저는 아직 PHP가 처음이에요. 다시 멍청한 실수 또는 내가 뭔가를 포함하지 않았어, 제발 불꽃을하지 말아요 난 단지 배우려고 노력하고 있으며, 모든 도움을 주시면 감사하겠습니다. 나는 PHP 레퍼런스/튜토리얼을 보았지만 도움이되지 않는다.

답변