You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何用foreach循环遍历SimpleXMLElement解析的XML关键词数组值

正确遍历写法

你之前的代码存在两个问题:

  1. 遍历节点路径错误,researcher_keyword 不是根节点下的直接子元素,需要写全层级路径
  2. value 是子节点而非属性,不能用数组形式['value']读取,需要用子节点访问方式->value读取,同时要转成字符串避免返回SimpleXMLElement对象

基础遍历输出(换行显示)

$oXML2 = new SimpleXMLElement( $response2 );
foreach ($oXML2->researcher->researcher_keywords->researcher_keyword as $item) {
    $keyword = (string)$item->value;
    echo $keyword . "<br>";
}

输出竖线|分隔的结果

如果需要直接得到用竖线拼接的完整字符串,可先把所有值存入数组再统一拼接:

$oXML2 = new SimpleXMLElement( $response2 );
$keywords = [];
foreach ($oXML2->researcher->researcher_keywords->researcher_keyword as $item) {
    $keywords[] = (string)$item->value;
}
// 拼接为竖线分隔字符串
$result = implode('|', $keywords);
echo $result;

补充说明

从你提供的var_dump结果可以看到researcher_keyword本身就是可迭代的数组结构,foreach会自动识别并遍历所有元素,不需要提前设置固定循环上限,也不会出现下标越界问题。

内容的提问来源于stack exchange,提问作者User301276

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:48:03