2013-08-18 3 views
0

현재 내 laravel 사이트에서 오류가 발생했습니다. 나는 다음과 같은 코드를 사용하고 있습니다 : 그 foreach 문에서Laravel 4/SimpleXML/PHP 노드가 존재하지 않습니다.

@extends('base') 
@section('title', 'Experience stages') 
@stop 
@section('main') 

<div class="container"> 
    <div class="doc-content-box"> 

    <legend>Experience stages</legend> 


    <?php 

    $stagesdir = 'C:\Users\E1\Desktop\theforgottenserver-v0.2.15-win64console\Mystic Spirit\data\XML'; 

    if(is_dir($stagesdir)) { 
     $list = simplexml_load_file($stagesdir.'\stages.xml'); 

     ?> 
     <table class="table table-striped"> 

     <thead> 
      <tr> 
       <th>From Level</th> 
       <th>To Level</th> 
       <th>Experience multiplier</th> 
      </tr> 
     </thead> 

     <tbody> 
     <?php 
     foreach($list->children() as $stage) { 
      if ($stage['maxlevel'] == '') { 
     $stage['maxlevel'] = '*';  
     } 
      echo ' 
      <tr> 
      <td>'.$stage['minlevel'].'</td> 
      <td>'.$stage['maxlevel'].'</td> 
      <td style="width: 30%">'.$stage['multiplier'].'x</td>  
      </tr>'; 
     } 
     } 
     else{ 
     echo '<div class="alert alert-danger"><span class="label label-important">Error parsing your Monsters XML file</span><br /><br /> Invalid path!</div> '; 
     } 
     ?> 
    </tbody> 

    </table> 

</div> 
</div> 

@stop 

을, 나는 $list->world->children()을 사용하는 wan't하지만 나를 위해 작동하지 않습니다. 내 페이지를 실행하려고하면, 나는 다음과 같은 오류 얻을 : 내 XML 파일에 참조로 http://paste.laravel.com/Koh

내가 다음 ->world없이 사용하지만 수 : 또한

main(): Node no longer exists 

을, 여기 내 XML 파일입니다 내 테이블에 <td>처럼 작동합니다.

+0

누구입니까? 부디? : P –

+0

어떤 줄 (번호 또는 코드)에서 오류가 발생합니까? –

답변

1

아, 문제가 발생했습니다. 첫 번째 하위 요소 (최대 하위 수준)에서 속성 (예 : <config>)을 가져 오려고 시도하고 해당 요소에 '사용'속성 만 있습니다. 시도해보십시오.

<?php 
$xml = '<stages> 
<config enabled="0"/> 
<stage minlevel="1" maxlevel="8" multiplier="7"/> 
<stage minlevel="9" maxlevel="20" multiplier="6"/> 
<stage minlevel="21" maxlevel="50" multiplier="5"/> 
<stage minlevel="51" maxlevel="100" multiplier="4"/> 
<stage minlevel="101" multiplier="5"/> 
</stages>'; 
$list = simplexml_load_string($xml); 

echo "<pre>"; 
foreach($list->children() as $child) 
{ 
    switch($child->getName()) 
    { 
     case 'config': 
      echo 'Config->enabled: '; 
      echo (string)$child['enabled']; 
      echo "\n"; 
      break; 
     case 'stage': 
      echo 'Stage->minlevel: '; 
      echo (string)$child['minlevel']; 
      echo "\n"; 
      break; 
    } 
} 
+0

감사하지만 파일에서로드해야합니다. 내 대본에서 그걸 할 수 있을까요? 지금 혼란 스럽다. 내 대본에서 할 수 있을까? –

+0

여전히'$ list = simplexml_load_file ($ stagesdir. '\ stages.xml');'을 사용할 수 있습니다. foreach-loop에서 $ child (또는 $ stage) 변수를 사용하는 방법을 보여주는 예제에서는'simplexml_load_string' 만 사용했습니다. –

+0

예.하지만 0 또는 1이면 설정이 표시됩니다. 아무것도 표시하지 않으려면 비활성화 할 수 있습니까? : p –

관련 문제