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

如何使用PHP从API返回的XML响应体中提取index_incarcare值

在PHP中提取XML响应里的index_incarcare值

首先,你的API响应是带命名空间的XML,直接提取属性需要先处理命名空间,以下是两种常用实现方式:

方法一:使用SimpleXMLElement处理

// 假设$response是你获取到的XML响应字符串
$response = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<header xmlns="mfp:anaf:dgti:spv:respUploadFisier:v1" dateResponse="202211011543" ExecutionStatus="0" index_incarcare="5001131564"/>';

// 加载XML内容
$xml = simplexml_load_string($response);

// 注册XML里的命名空间(前缀可自定义,这里用'ns')
$xml->registerXPathNamespace('ns', 'mfp:anaf:dgti:spv:respUploadFisier:v1');

// 定位header节点并提取属性
$headerNodes = $xml->xpath('//ns:header');
if (!empty($headerNodes)) {
    $indexIncarcare = (string)$headerNodes[0]['index_incarcare'];
    // 此时$indexIncarcare的值为"5001131564"
}

方法二:使用DOMDocument处理

$response = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<header xmlns="mfp:anaf:dgti:spv:respUploadFisier:v1" dateResponse="202211011543" ExecutionStatus="0" index_incarcare="5001131564"/>';

$dom = new DOMDocument();
$dom->loadXML($response);

// 初始化XPath并注册命名空间
$xpath = new DOMXPath($dom);
$xpath->registerNamespace('ns', 'mfp:anaf:dgti:spv:respUploadFisier:v1');

// 获取header节点并提取属性
$headerNode = $xpath->query('//ns:header')->item(0);
if ($headerNode) {
    $indexIncarcare = $headerNode->getAttribute('index_incarcare');
    // 此时$indexIncarcare的值为"5001131564"
}

注意事项

  • 必须注册并使用命名空间,否则无法定位到header节点
  • 将属性值转为字符串(如(string)),避免返回SimpleXMLElement或DOMAttr对象类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:45:34