質問

一部のページコンテンツ(Tidyを介して実行されていますが、これが問題の原因である場合は必要ありません)を DOMDocument :: loadHTMLを使用して DOMDocument に入れています

さまざまなエラーが発生しています:

  

ID xは、エンティティの行Xで既に定義されています

DOMDocument (またはTidy)に重複する要素IDを無視または削除させる方法はありますか?実際に DOMDocument を作成しますか?

ありがとう。 :)

役に立ちましたか?

解決

件名をすばやく検索すると、この(誤った)バグレポートが明らかになります。

http://bugs.php.net/bug.php?id=46136

最後の返信には次のように記載されています:

  

HTML 4ルールを使用して、   XHTMLドキュメント。 load()を使用するか   XMLまたは   libxml_use_internal_errors()関数   警告を無視します。

ロードされているHTMLページへの参照を含めなかったため、同じ理由でこの問題が発生しているかどうかはわかりません。いずれの場合でも、 libxml_use_internal_errors() は少なくともエラーを抑制する必要があります。

HTMLドキュメントのIDは一般的に一意であり、 最良の解決策は、可能な限りドキュメントを検証することです。

他のヒント

定義により、IDは一意です。そうでない場合は、代わりにクラスを使用する必要があります(該当する場合は名前も使用しないでください)。
XMLツールに強制的に重複IDを無視させることはできません。無効にすると、無効なXMLドキュメントを処理できます。

例外を使用して重複IDを処理し、2番目のIDの名前を変更します。 または、同じ親のサブ要素の要素をIDで結合することもできます。

IDは、XMLファイル(XMLTreeのrootElement内)で一意です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top