0
我在一個新項目中需要從其他Web服務加載XML文件並處理其內容。如何控制從外部源加載XML文件
外部服務也在開發之中,因此與其合作會有些滯後。
現在,我使用的是這樣的:
if (fopen(Constants::XML_AUTH . $this->xmlString, "r") == true) {
$this->xmlDom = simplexml_load_file(
Constants::XML_AUTH . $this->xmlString,
'SimpleXMLElement');
if (!$this->xmlDom) {
$this->setStatus(Constants::XML_NOTLOADED);
}
else {
$this->setStatus($this->xmlDom->status);
$this->setType();
}
}
這工作得很好,只要外部Web服務運行UND響應。 但是一旦它落後,simplexml_load_file()函數就會使用整個腳本所有的時間,試圖從源代碼加載,最後腳本返回一個美麗的白色屏幕。
所以我想知道是否有可能控制時間量,腳本必須加載外部XML,如果不成功,則會打印一個錯誤。
或者是否還有更好的方法來安全地加載PHP的外部XML文件? 我在這個項目上使用symfony 1.4。
我用第一個選項與stream_get_contents()的組合。這絕對是一個改進。萬分感謝! – 2012-03-08 11:17:59
太棒了!更新答案,感謝您的反饋。另外:使用xmlreader,這絕對是php5的一個晦澀和真棒功能的榮譽。 – jpic 2012-03-08 11:18:43