私はHTMLのようなレガシードキュメントをたくさん持っています。以下のように、彼らは、HTMLのように見えるが、私はこれらのファイルを解析する必要がHTMLPHPで許容されるエラーのあるHTML/XML/SGML構文解析
<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>
の一部ではない追加の構成されたタグを持ちます。利用可能な唯一のツールはPHPです。ドキュメントは整形式のXMLに近いものにはなりません。
私の元々の考えは、PHP DOMDocumentでloadHTMLメソッドを使用することでした。しかし、これらのメソッドは、HTMLタグを補うことを詰まらせ、文字列/ファイルの解析を拒否します。
$oDom = new DomDocument();
$oDom->loadHTML("<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>");
//gives us
DOMDocument::loadHTML() [function.loadHTML]: Tag pseud-template invalid in Entity, line: 1 occured in ....
私が思い付くことができました唯一の解決策は、無効なタグを削除し、有効なHTMLタグ(と多分スパンでそれらを置き換えます文字列置換機能を持つファイルを事前処理することですタグ名のid)。
もっと洗練されたソリューションはありますか? DOMDocumentに、有効と見なされる追加のタグについて知る方法? PHPのための異なる、堅牢なHTML解析クラス/オブジェクトがありますか?
(それは明白でなければ、私は正規表現にここで、有効な解決策を考慮していない)
更新:偽のタグに記載されている情報は、ここでの目的の一部であるので、Tidyのようなものではありませんオプション。また、私は整形式のクリーンアップのレベルではないにしても、ある程度レベルを上回っているので、最初はDomDocumentのloadHTMLメソッドを探していたのです。
あなたは数週間待っていたはずです、あなたは2年後のバッジ "正しい答え"を得ている可能性があります! –
arh ..なぜ私はそれを知りませんでした:) – troelskn
無効なタグをスキップする方法はありますか? –