使用CURL解析XML的PHP代码,只显示我想要的标签。

13 浏览
0 Comments

使用CURL解析XML的PHP代码,只显示我想要的标签。

我有一个Php/curl文件\n

 '123',
    'api_key' => 'abc',
    'start_date' => '10/8/2012',
    'end_date' => '10/11/2012',
    'offer_id' => '123',
    'start_at_row' => '1',
    'row_limit' => '0',
    'sub_affiliate' => 'email'
);
//将数据转化为URL格式
foreach($post_array as $key=>$value) 
{ 
    $post_array_string .= $key.'='.$value.'&'; 
}
$post_array_string = rtrim($post_array_string,'&');
//设置URL、POST变量数量和POST数据
curl_setopt($ch,CURLOPT_POST,count($post_array ));
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_array_string);
$response = curl_exec($ch);
print "$response";
?>

\n可能的XML响应如下:\n


true
1

22.26555000000000
$



221D4853
2011-06-24T11:51:05.117
100
$100 Bendy's Gift Card + Free Frosti
1781
111770




15.0000
Voicemail matches name
false




\n我实际上只需要在页面上显示conversion_id和price。我不想显示其他结果。我该怎么做?

0
0 Comments

问题:php使用curl解析xml并只显示所需标签的原因是什么?如何解决这个问题?

原因:在这个问题中,我们需要使用curl来获取一个XML响应,并从中提取出我们所需的标签。然后,我们使用SimpleXMLElement类来解析XML,并通过指定标签名称来获取所需的元素。

解决方法:

1. 首先,我们需要使用curl来获取XML响应。可以使用以下代码来完成:

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "http://example.com/xml_data",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);

2. 接下来,我们需要使用SimpleXMLElement类来解析XML响应。可以使用以下代码来完成:

$xml = new SimpleXMLElement($response);

3. 最后,我们可以使用所需的标签名称来获取元素。可以使用以下代码来完成:

echo "
";
echo $xml->conversions->conversion->conversion_id, PHP_EOL;
echo $xml->conversions->conversion->price, PHP_EOL;

这样,我们就可以使用curl获取XML响应,并使用SimpleXMLElement类来解析XML,并最后只显示我们所需的标签。

0