私は知っています。それは有効なXMLではありません。複数のルートノードがある場合、libxmlはすべてのコンテンツを解析します
残念ながら、これはlibxmlを利用したPHPソースコードのバグを回避するためのものです。
PHPのloadHTML関数は、偶発的に警告なしのフラグとエラーフラグを上書きしないので、これらのオプションを渡すと決してlibxmlにはなりません。
PHPのloadXMLはではないと同じ間違いをします。すべてのフラグは期待どおりに動作します。だから私は今の代わりにloadXMLを使用して探しています。残念なことに、loadXMLは単一のルートノードの後に解析を停止するため、テンプレートスニペットやウィジェットをロードするのには適していません。だから...
<!--My title snippet -->
<h1>${{ title }}</h1>
<h4>${{ subtitle }}</h4>
は、loadXMLで部分的にのみロードされます。 libxmlのパーサに強制的に続行させるオプションフラグはありますか?また、すべてのスニペットをルートノードでラップする必要がありますか?
注
私はバグを歩き回るの他の方法を模索しています。たとえば、LIBXML_USE_INTERNAL_ERRORS(true)を使用するか、出力バッファーで警告をキャッチしてクリアします。どちらもうまくいきますが、どちらも満足のいくものではありません。なぜなら、警告とエラーを私が欲しくない記憶に書き込むからです。
'libxml_use_internal_errors'の問題点は何ですか?警告とエラーは 'libxml_clear_errors'でクリアすることができます。 – nwellnhof