2011-08-07 4 views
0

SimpleXML을 사용하여 내 웹 사이트의 뉴스 및 이벤트가 포함 된 XML 파일을 읽습니다. foreach를 사용하여 미리 정의 된 xml 태그를 반복합니다. 그러나, 내 웹 사이트에서, 내 XML의 루트의 차일드 인 세 가지 뉴스 및 이벤트 만 표시해야합니다. 내 PHP 파일SimpleXML 특정 아동 수 읽기

foreach($xml->newsevent as $newsevent) 
{ 
echo "$newsevent->date"; 
echo "$newsevent->description"; 
} 

에서 foreach 루프를 사용하고

<list> 
<newsevent> 
<date>AUG 7</date> 
<description>news</description> 
</newsevent> 
<newsevent> 
<date>AUG 6</date> 
<description>news/description> 
</newsevent>  
<newsevent> 
<date>AUG 5</date> 
<description>news</description> 
</newsevent> 
</list> 

XML 파일은 뉴스 및 이벤트에 대한 데이터베이스로 취급 될 것이며, 분명히 기록이 많이있을 것입니다. 특정 수의 newsevents 만 표시하려면 어떻게해야합니까? 충분한 시간을 반복 한 경우

답변

0

당신은 당신이 루프 한 횟수를 추적하고, 루프를 종료, 일부 카운터 변수를 추가 할 수 있습니다

$counter = 0; 
foreach($xml->newsevent as $newsevent) 
{ 
    echo "$newsevent->date"; 
    echo "$newsevent->description"; 
    $counter++; 
    if ($counter >= 3) { 
     break; 
    } 
} 


여전히주의와 그 SimpleXML(DOMDocument과 동일)과 같이 XML 문서 전체를 구문 분석하고 메모리에서로드해야하는 항목 수에 관계없이 메모리에로드됩니다.

문서가 너무 큰 경우 DOM 파서는 사용하지 않고 SAX는 사용하지 않는 것이 좋습니다.

PHP에서는 XMLReader 클래스를 살펴볼 것입니다.

+0

대단히 감사합니다. – user874737