2016-08-04 4 views
-2

xml 파일을 반복하는 코드는 다음과 같습니다.XML을 통해이 반복을 다시 작성할 수 있습니까?

$nodelist = $xml->getElementsByTagName('cv'); 
foreach ($nodelist as $node) { 
    $naam = $node->getElementsByTagName('naam'); 
    $naamid = $naam->item(0)->nodeValue; 
} 

거기에는 한 줄로 값을 가져 오는 방법이 있습니까?

$nodelist = $xml->getElementsByTagName('cv'); 
foreach ($nodelist as $node) { 
    $naamid = <a one line to get the nodevalue of naam out of the xml>; 
} 
+0

$ naamid = $ 노드 ->를 getElementsByTagName ('naam') -> item (0) -> nodeValue; ?? – Bert

+0

예, 작동 중입니다. 고마워요 – Justme

+0

왜 누군가가 나를 싫어 했나요? – Justme

답변

1
당신은 심지어 당신이 naam 요소의 모든 인스턴스를 유도 할 수있는 한 줄의 기능을 만들 수 생성기를 사용하여, 한 줄에 전체 프로그램을 할 수

:

// Returns a generator which gets all elements with 'naam' 
function getNaamElements() 
{ 
    foreach ($xml->getElementsByTagName('cv') as $node) 
    { 
     yield $node->getElementsByTagName('naam')->item(0)->nodeValue; 
    } 
} 

// To get an array: 
$array = iterator_to_array(getNaamElements()); 

// To loop over all 'naam' elements in another loop, use the generator instead 
foreach (getNaamElements() as $naam) 
{ 
    // Do stuff with $naam 
} 
관련 문제