2012-03-22 13 views
2

私はそれが無効なマークアップを処理するときにクラッシュしないphpQueryの代わりに使用しますか?

PHP Fatal error: Uncaught exception 'Exception' with message 'Error loading XML markup'

になり、無効なマークアップページでそれを使用するときにページの例の問題のコードがあることに気づいたが、私はページを解析するphpQueryを使用しています:

<?xml version="1.0" encoding="iso-8859-2"?> 
<link href="http://example.com/?foo=bar&baz=quz" /> 

私はphpQueryを望みますそのようなページではfalseを返しますが、悲しいことに、即座に致命的なエラーが発生して、何かをすることができなくなります。

エラーはそれがjQueryのように動作しますが、私は、無効なマークアップに取り組んでいます代替ソリューションを探していますので、本当にphpQueryようphpQuery::newDocumentFile($page);

私のようphpquery初期化した直後に発生します。

答えて

5

実際には、無効なマークアップのためにクラッシュが発生していません。無効なマークアップがスローする例外をキャッチしないので、クラッシュが発生します。あなたがそれらをキャッチしていない場合は例外が致命的なエラーのみとなっ

try { 
    phpQuery::newDocumentFile($page); 
    //Process the page here 
} catch (Exception $e) { 
    //What do we do if any of that fails? 
} 

は次のようにのtry-catchで初期化してみます。

+0

例外をキャッチすることも良いアプローチです。 –

1

phpQueryに渡す前に、まずXMLを検証してXMLを検証できます。 PHPを使用してXMLを検証する方法については、かなりgood articleです。

関連する問題