2017-02-25 4 views
0

내 XML 파일 (예를 들어) 등의 첫 번째 요소의 자식 요소를 가져 오기 :

<?xml version="1.0" encoding="UTF-8" ?> 
<bikes> 
    <bike> 
     <model>First</model> 
     <speedNumber>4</speedNumber> 
     <sizes>100</sizes> 
     <amount>100</amount> 
    </bike> 
    <bike> 
     <model>Second</model> 
     <speedNumber>3</speedNumber> 
     <sizes>300</sizes> 
     <amount>150</amount> 
    </bike> 
    <bike> 
     <model>Third</model> 
     <speedNumber>4</speedNumber> 
     <sizes>300</sizes> 
     <amount>300</amount> 
    </bike> 
</bikes> 

어떻게 얻을 수있는 첫 번째 <bike> 요소의 자식 요소?
는 나는이 시도 model=First, speedNumber=4 ...

<bike> 
    <model>First</model> 
    <speedNumber>4</speedNumber> 
    <sizes>100</sizes> 
    <amount>100</amount> 
</bike> 

인쇄 할 :

foreach ($xml->children(0) as $bikes) 
{ 
    foreach ($bikes->children() as $childs) 
    { 
    echo $childs->getName()."=".$childs ." "; 
    } 
    echo "<br>"; 
} 

을하지만 나를 위해 작동하지 않습니다.
이 문제를 어떻게 해결할 수 있습니까?

+1

당신이 할 수 있었던'bike'의 요소에 바로 접근으로 반복하고 그 다음 첫 번째 것, https://eval.in/742822를 깬다. 현재 XML 구조가 유효하지 않습니다. '자전거 '를 닫아야합니다. – chris85

답변

0

당신은 직접 배열 구문을 사용하여 요소에 액세스 할 수 있습니다

$bikes->bike[0]->model 
$bikes->bike[0]->speedNumber 
... 

전체 코드 : 여기 테스트

<?php 
$xml = <<<XML 
<?xml version="1.0" encoding="UTF-8" ?> 
<bikes> 
    <bike> 
     <model>First</model> 
     <speedNumber>4</speedNumber> 
     <sizes>100</sizes> 
     <amount>100</amount> 
    </bike> 
    <bike> 
     <model>Second</model> 
     <speedNumber>3</speedNumber> 
     <sizes>300</sizes> 
     <amount>150</amount> 
    </bike> 
    <bike> 
     <model>Third</model> 
     <speedNumber>4</speedNumber> 
     <sizes>300</sizes> 
     <amount>300</amount> 
    </bike> 
</bikes> 
XML; 

$bikes = new SimpleXMLElement($xml); 

echo $bikes->bike[0]->model . "\n"; 
echo $bikes->bike[0]->speedNumber . "\n"; 
echo $bikes->bike[0]->sizes . "\n"; 
echo $bikes->bike[0]->amount . "\n"; 

?> 

: http://codepad.org/yVAyoPtG