使用CURL解析XML的PHP代码,只显示我想要的标签。
使用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。我不想显示其他结果。我该怎么做?
问题: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,并最后只显示我们所需的标签。