2012-12-21 24 views
0

我進口從我的谷歌日曆的一些事件,我這樣做:如何剝離或逃避html標籤保存curl_exec()輸出到XML文件時

$ch = curl_init("my_google_calendar_url"); 
$fp = fopen("cal.xml", "w"); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch) 
fclose($fp); 
curl_close($ch); 

我得到在傾倒的所有數據XML文件,但隨着數據的所有HTML標籤也傾倒在輸出,這反過來是分裂輸出,例如

新HolidayWhen:週五2012年12月21日13:00至14:00 & NBSP; IST <BR>

&lt;br&gt;Where: Aus 
&lt;br&gt;Event Status: confirmed</summary><content type='html'>When: Fri 21 Dec 2012 13:00 to 14:00 
IST&lt;br /&gt; 

&lt;br /&gt;Where: Aus 
&lt;br /&gt;Event Status: confirmed 
&lt;br /&gt;Event Description: It&amp;#39;s going to be awesome.</content> 

這是一小塊我在我的xml文件我得到的。我想條狀「& LT」等所有的HTML標記,以便它會很容易提取XML數據。

+0

歡迎堆棧溢出。您可以使用工具欄按鈕格式化源代碼。我試圖爲你做,但你已經對HTML部分做了很好的處理。既然你有原始的代碼,我建議你編輯問題並給它一個適當的格式。 –

+0

是@ÁlvaroG.Vicario我做了你所問的。我真的很感激一個快速的幫助:) – Priyanka

回答

1

刪除CURLOPT_FILE選項並使用$output = curl_exec($ch); 然後,您可以$output = strip_tags(html_entity_decode($output));fwrite($fp, $output);

+0

感謝您的答覆,但創建的XML根本沒有標籤。所以現在如果我想提取一些領域如何做到這一點?傾倒數據轉換成XML我的整個靈魂和目的是使提取容易使用XML標籤 – Priyanka

+0

在這種情況下使用'$輸出= html_entity_decode($輸出)'代替。 – scoota269

+0

非常感謝。它像魔術一樣工作。 :) – Priyanka

1

的HTML被視爲在XML所以數據:

  1. 解析與XML解析器
  2. 的XML與HTML解析器
  3. 提取物從所得到的DOM
  4. parse the HTML獲取HTML無論你需要什麼數據