1

Zend_Feed_AtomWebサイトからフィードを取得するために使用していますが、次のエラーが発生します。

メッセージ:

DOMDocumentはXMLを解析できません:DOMDocument :: loadXML()[domdocument.loadxml]:xmlParseEntityRef:エンティティに名前がありません、行:827

別のサイトで試してみましたが、エラーはありませんでした。その特定のページでエラーが発生する理由と、このエラーの意味を知りたいのですが。私はオンラインで調べましたが、それはエンコーディングの問題であると言われています(私は本当に理解していません)。

私のコードは単純です、それはただ

if($type_feed == "atom"){
    $nfeed = new Zend_Feed_Atom($address);  
}elseif($type_feed == "rss"){
    $nfeed= new Zend_Feed_RSS($address);
}

どんな助けでも素晴らしいでしょう!ありがとう!

4

2 に答える 2

1

ここを見てください:http ://www.php.net/manual/en/class.domdocument.php#domdocument.props.recover

専有。リカバリモードを有効にします。つまり、整形式でないドキュメントを解析しようとします。この属性はDOM仕様の一部ではなく、libxmlに固有です。

あなたが試すことができます:

$dom = new DOMDocument();
$dom->recover = true;

また、私の実装を見てください:https ://gitlab.com/DeepRSS/Reader/blob/a2723735ff3e3cdd7d85649c92d0115211ea9a0d/src/Core/Service/ZendReader/FeedParser.php#L99

于 2018-05-08T07:49:08.490 に答える
0

フィードが無効になっている場合は無効になりますが、それについてできることはほとんどありません。

これを回避する1つの方法は@、エラーを抑制するために使用することです。

if($type_feed == "atom"){
    $nfeed = @new Zend_Feed_Atom($address);  
}elseif($type_feed == "rss"){
    $nfeed= @new Zend_Feed_RSS($address);
}

newが呼び出されるとすべてが抑制されるため、これは理想的ではないことに注意してください。

于 2012-08-09T08:23:14.640 に答える