String could not be parsed as XMLの対策

String could not be parsed as XMLの原因について、肝心の対策を書いてなかったので書いておきます。




HTMLScrapingに同梱されている)HTMLParser.classを使ってHTMLを整形式のXML文書に修正する場合です。


HTMLParser.classのバージョンは1.2.1です。


727行目(「不適切に用いられている解析対象記号の置換」について書かれているfunction _escapeCharsの末尾)に以下の行を追加

$string = preg_replace('/\x0b/', '', $string);

これだけです。


\x0bは垂直タブの制御コードです。
他の制御コードがでてきたときには追加していかないといけませんね。
制御コードを一括指定できればいいんですけど、そんな都合のいい方法はない(……ですよね?)。残念。