dongyongan9941 2018-05-18 11:17
浏览 15
已采纳

SimpleXML-Load Child-getting获取属性

I've got the following problem and I can't find my mistake probably?

I try load the following XML(Over 15k Lines) Structure:

<Config>
  <SystemFiles>
  <Core>
    <Info>
    <Network>
    <Capture>
    <Store>
      <Mount01>
      <Mount02>
    </Store>
  </Core>
</Config>

I need access to the Substructure of Store with each Child of it. My function looks like:

  public static function get_storage_data()
  {
    if(file_exists('/var/www/content/data/data.xml')) :
        $xml = simplexml_load_file('/var/www/content/data/data.xml');
        foreach ($xml->Config->Core->Store->children() as $mount) {
          echo $mount;
        }
    else:
        write_log(sprintf("data.xml not found"));
    endif;
  }

Which generates the following errors (Line 8 is the foreach line):

Notice
: Trying to get property 'Store' of non-object in
/var/www/inc/storage.inc
on line
8

Fatal error
: Uncaught Error: Call to a member function children() on null in /var/www/inc/storage.inc:8 Stack trace: #0 /var/www/storage.php(30): Storage::get_storage_data() #1 {main} thrown in
/var/www/inc/storage.inc
on line
8

What did I forget here or what is my mistake? Thanks!

  • 写回答

1条回答 默认 最新

  • dongqiaolong9034 2018-05-18 11:27
    关注

    You don't need to include the root node name when using SimpleXML to parse XML - it's already anchored at that level.

    You should just be able to change the path from

    $xml->Config->Core->Store->children()
    

    to

    $xml->Core->Store->children()
    

    Note: I'm assuming that your <Mount01> and <Mount02> nodes just contain text content, since you won't be able to echo them otherwise.

    See here for a worked example: https://eval.in/1006543

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵