gpt4 book ai didi

php - 使用 wp_remote_get 在 WordPress 中处理 XML

转载 作者:可可西里 更新时间:2023-11-01 14:03:47 26 4
gpt4 key购买 nike

我怀疑我遗漏了一些非常基本和明显的东西,所以提前道歉!

我一直在使用 simple_xml_load 处理 XML 文件,但我客户的托管服务提供商阻止通过此方法加载外部文件。我现在正尝试使用 WordPress 内置的 wp_remote_get 函数重建我的工作。

这是我的代码(注意:此示例中的 key 和避难所 ID 是通用的):

$url = "http://api.petfinder.com/shelter.getPets?key=1234&count=20&id=abcd&status=A&output=full";
$pf_xml = wp_remote_get( $url );
$xml = wp_remote_retrieve_body($pf_xml);

使用它,我可以检索我需要的所有数据的数组,但我不知道如何定位特定数据。以下是 print_r($xml) 的输出:

<petfinder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://api.petfinder.com/schemas/0.9/petfinder.xsd">
<header>
<version>0.1</version>
<timestamp>2013-03-09T15:03:46Z</timestamp>
<status>
<code>100</code>
<message/>
</status>
</header>
<lastOffset>5</lastOffset>
<pets>
<pet>
<id>13019537</id>
<name>Jordy</name>
<animal>Dog</animal>
</pet>
<pet>
<id>13019888</id>
<name>Tom</name>
<animal>Dog</animal>
</pet>
</pets>
</petfinder>

例如,如果我想echo 状态码,我该怎么做?使用 simplexml,我会编写 $xml->header->status->code。我似乎无法弄清楚使用 wp_remote_get 对数组执行类似操作的代码结构是什么。

提前致谢!

最佳答案

到目前为止,您的代码确实将 XML 检索为字符串:

$url      = "http://api.petfinder.com/shelter.getPets?key=1234&count=20&id=abcd&status=A&output=full";
$response = wp_remote_get($url);
$body = wp_remote_retrieve_body($response);

像以前使用 simplexml_load_file 一样将字符串(而不是 URL)加载到 SimpleXMLElement 中(你没有显示具体代码,所以我假设你是根据你的描述这样做的)你现在需要用 simplexml_load_string 加载字符串相反:

$xml  = simplexml_load_string($body);
$code = $xml->header->status->code;

我稍微更改了您的变量名称(尤其是 wp_remote_* 函数),以便更清楚地了解这些变量的含义。

关于php - 使用 wp_remote_get 在 WordPress 中处理 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312554/

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