非常に重い XML ファイル (200 MB から 1 GB の間) を読み取る必要があり、それらの一部は無効です。ちょっとした例を挙げましょう:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<item>
<title>Some article</title>
<g:material><ul><li>50 % Coton</li><li>50% Lyocell</li></g:material>
</item>
</rss>
明らかに、</ul>
タグに終了タグがありませんg:material
。さらに、このフィードを作成した人は、g:material
コンテンツを に含める必要がありましCDATA
たが、そうではありませんでした... 基本的に、それが私がやりたいことです: この欠落しているCDATA
セクションを追加します。
SAX パーサーを使用してこのファイルを読み取ろうとしましたが</g:material>
、タグがないため、タグの読み取りに失敗しました</ul>
。XMLReader を試してみましたが、基本的に同じ問題が発生しました。おそらく DomDocument::loadHtml で何かを行うことができますが、このファイルのサイズは実際には DOM アプローチと互換性がありません。DomDocument が機能するために大量の RAM を購入することなく、このフィードを簡単に修復する方法をご存知ですか? ありがとう。