質問

私を信じてチーム遺産の文書がHTMLです。として、そのようなHTMLが追加されたタグな部分のHTML

<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>

い構文解析これらのファイルです。PHPのみツール可能です。書類のわからないなりされているが形成されたコンポーネントです。

私のオリジナルな考えを使用したloadHTML方法PHPs DOMDocument.しかし、これらの方法では、チョークの作のHTMLタグを拒絶することがあり解析して、string/ファイルです。

$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知の追加のタグを考えるとして。が異なる、HTMLを解析クラスオブジェクトあためのPHP?

(いない場合は明らかであり、だと考えたこと正規表現に有効な液こちら)

更新:の情報を偽りのタグの目標はこのような整理整頓なオプションになります。また、私た後のものは、すべてではないが、整形式の清掃のためには、私はなぜこのDomDocumentのloadHTML方法。

役に立ちましたか?

解決

を抑えることができ警告 libxml_use_internal_errors, を負荷します。例:

libxml_use_internal_errors(true);
$doc = new DomDocument();
$doc->loadHTML("<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>");
libxml_use_internal_errors(false);

場合は、何らかの理由で必要なアクセス、警告、利用 libxml_get_errors

他のヒント

私の場合は"悪い"HTMLを通じて HTMLテ うにすることが可能となっており、最初のパス?あくまで文書を正しい形式になっているかが負荷として通常のXMLファイルDomDocument.

@Twan 必要なDTDのためのDOMDocument構文解析のカスタムコンポーネントです。使おう DOMDocument->load(), るためのバッファーとしてのXMLは整形できます。

まずはしっかりとしたファイルの形、それがきみのXMLパーサは、いS.O.L.Lok Alejoときを見 HTMLテ, のようにも見える具体的なHTML、わからないどのように行くとカスタムです。

だと考えたこと正規表現に有効な液こちら

まだ整形式、あなただけのオプションです。ロサンゼルス生まれの書類がそれまでに明らかにDOMます。

く、パーサは、PHPせます。をコードするクリーンをもとにした積み、汚れたHTML保存されました。で構成される吸引テーブルができadapated.

きのソースはこちらhttp://gerd.exit0.net/pat/PHPFIT/PHPFIT-0.1.0/Parser.phps

単体テストのご使い方は:http://gerd.exit0.net/pat/PHPFIT/PHPFIT-0.1.0/test/parser.phps

私の迅速や汚れはこの問題の解決策は、ループと一致するマイリストのカスタムタグを正規表現で指定する。正規表現の追いつかないのでタグとしても内部のカスタムタグ内です。

がある場合は、試合をする機能プロセスのタグと呼ぶを返します"加工HTML".そのカスタムタグ内の別のカスタムタグの親会社となりchildlessという実際のHTMLを挿入したの子供で合わせると、正規表現処理の繰り返し処理のループを実行します。

ループの終了時ありませんchildlessカスタムタグをマッチング済み専用品です。全体で繰り返し(while)な列に変換します。

@Alan嵐

コメントもその他の答えたいとお考えのみなさ

読み込んだ場合は、HTMLファイルDOMDocumentでいくつかのレベルの清掃活動再も整形式が必要になります全てのタグをちゃんとした証明書がHTMLタグです。を探しているものなのではない。(Alan Storm)

走regex(すいません!) 以上のタグができるようにするためのlibsoupお一ではないが有効なHTML要素に置き換えを有効な要素だ存在しないの文書(blink 浮リソースをカスタマイズで属性値の名前は、不正な要素で切り替えることができます。例:

$code = str_replace("<pseudo-tag>", "<blink rel=\"pseudo-tag\">", $code);
// and then back again...
$code = preg_replace('<blink rel="(.*?)">', '<\1>', $code);

明らかにするコードな作業でご利用いただけます。一般に考えたんですか?

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