已解决 - 如何在 PHP foreach 循环中从 XML 文件中获取行值?

问题描述

我正在处理一个相当简单的 xml 文件(最初显示为表格),我需要读取每个“行”元素中的值(例如字符串“失败”、“12345”...),但我不知道如何编写正确的语法。 这是我的 xml 文件 ($ptpXml):

<?xml version="1.0" encoding="UTF-8"?>
<ResultList  name='PTP'>
<row status='fail' id='12345' ang='0.0' pr='-18.5'/>/>
<row status='pass' id='54321' ang='0.0' pr='21.3'/>/>
</ResultList>

截至目前,我的代码如下所示:

/** @var \SC\Core\SimpleXMLElement */
$ptpXml = simplexml_load_file($ptpXml,'\SC\Core\SimpleXMLElement');

foreach ($ptpXml as $idx => $item) { 
    echo $item->status . '<br>';
    echo $item->id . '<br>';
    echo $item->ang . '<br>';
    echo $item->pr . '<br>';
}

我尝试了多种选择,例如:

                $test = $item->row->status;
                $test = $item->status;
                $test = $ptpXml->status;
                $test = $ptpXml->row->status;

但他们都没有工作。有时它会将 $test 识别为 xml 对象,而不是字符串 'fail'。我做错了什么?

================================================ ================ 编辑: 经过大量测试和一些阅读,我设法解决了它!它看起来像这样: 代码

/** @var \SC\Core\SimpleXMLElement */
$ptpXml = simplexml_load_file($ptpXml,'\SC\Core\SimpleXMLElement');
...

foreach ($ptpXml as $key => $result) {
   $rows = $result->attributes();
   echo $rows->status . '<br>';
   echo $rows->ang . '<br>';
   ...
}

这样,代码就会循环遍历两行,我可以从我的 'row' 元素中自由选择我想要使用的任何属性

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)