gpt4 book ai didi

php - 解析从 cURL 返回的 XML 并将 curl_exec 对象解析为 SimpleXMLElement 时遇到问题

转载 作者:行者123 更新时间:2023-12-04 05:26:56 24 4
gpt4 key购买 nike

我似乎从这个 cURL 得到了一个格式良好的 XML 文档,但我似乎无法使用 SimpleXMLElement 类解析这个返回。这是我现在正在使用的代码迭代:

$url = "http://rosemary.umw.edu/~stephen/cpsc448/numCredits.php?prefix=". $prefix ."&number=" . $number; // prefix=cpsc&number=220
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15);

$resp = curl_exec($ch);

echo $resp;

这将返回:
<?xml version="1.0"?><NumCredits>4</NumCredits>

这就是我目前尝试解析返回的方式:
$xml = new SimpleXMLElement($resp);
echo $xml->NumCredits[0];

使用这个我没有得到回应。我也试过这个方法没有成功:
$dom = new DOMDocument;
$dom->loadXML($resp);
if (!$dom) {
echo 'Error parsing document';
exit;
}

$simpleXML = simplexml_import_dom($dom);
echo $simpleXML;
return $simpleXML->NumCredits[0];

我一定在这里做错了什么,但我不太明白为什么解析这个返回值这么难。

最佳答案

您的 XML 中只有一个元素,因此它被视为文档根:

$xml_string = '<?xml version="1.0"?><NumCredits>4</NumCredits>';
$xml = new SimpleXmlElement($xml_string);
print_r($xml);

将输出:
SimpleXMLElement Object
(
[0] => 4
)

因此它可以被访问为 $xml[0];
如果您希望能够通过元素名称访问它,则需要向 XML 添加一个根元素,例如:
<?xml version="1.0"?>
<root>
<NumCredits>4</NumCredits>
</root>

解析此文档后,您可以使用 $xml->NumCredits; 访问该值。

关于php - 解析从 cURL 返回的 XML 并将 curl_exec 对象解析为 SimpleXMLElement 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com