0

我目前有一个问题,我的 laravel 网站返回错误。我正在使用以下代码:

    @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

在那个 foreach 中,我不想使用$list->world->children(),但它对我不起作用。当我尝试运行我的页面时,我收到以下错误:

main(): Node no longer exists

另外,这是我的 XML 文件: http: //paste.laravel.com/Koh

我可以在没有的情况下使用它,->world但是正如您在我的 XML 文件中看到的那样,它就像<td>在我的表中一样。

4

1 回答 1

1

啊,我看到了你的问题;您试图从第一个子元素(即 )获取属性(maxlevel 等)<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;
    }
}
于 2013-08-19T09:47:42.297 回答