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

如何使用PHP SimpleXMLElement仅提取并打印节点值?

如何从SimpleXMLElement中获取并打印纯节点值

你当前的问题在于使用print_r()输出SimpleXMLElement对象,导致输出了完整的对象结构而非纯文本值,同时代码中存在语法错误。以下是解决方法:

核心原理

SimpleXMLElement对象在被当作字符串使用时,会自动返回节点的文本值,不需要额外复杂操作。

修正后的代码示例

1. 先修正语法错误

你的遍历代码中有多余的闭合方括号:$xml->ReturnData->FromForm->DataGrp]-,需要去掉这个多余的]。

2. 正确遍历并输出纯文本值

<?php
// 加载XML数据(沿用你已有的代码)
$url = 'site.com';
$result = file_get_contents($url, false);
if ($result === false) {
    /* Handle error */
}
$xmlObject = simplexml_load_string($result);

// 遍历所有DataGrpPerson节点
foreach ($xmlObject->ReturnData->FromForm->DataGrp->DataGrpPerson as $person) {
    // 强制转换为字符串获取纯节点值
    $name = (string)$person->PersonNm;
    $title = (string)$person->TitleTxt;
    echo "$name, $title<br>";
}
?>

关键说明

  • 避免使用print_r():该函数用于打印变量的结构,并非输出纯文本值。
  • 强制类型转换:通过(string)将SimpleXMLElement对象转换为字符串,直接提取节点文本。
  • 遍历整个数组:DataGrpPerson是一个数组,直接遍历即可获取所有人员数据,无需手动指定索引[0]。

快速查看单个节点值的技巧

如果只需查看单个节点的纯值,可直接输出:

// 输出第一个人员的姓名
echo (string)$xmlObject->ReturnData->FromForm->DataGrp->DataGrpPerson[0]->PersonNm;

内容的提问来源于stack exchange,提问作者Mary Anne Welch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:05:12