ふー phpでdom操作はつかれるぜ

ランディングページ作成アプリは順調に開発(遅れているけど)していたが、今日は久しぶりに悩んだ。
 
phpでdomを操作するというのは元々難しい挑戦だったんだけど、大きな問題はクリアしてサクサクと管理画面周辺を作っていた。
で、保存と読み出しをする時にテストでは上手く行っていたものが組み込んでみると上手くいかない!!!なんでだーーーとすげ~~~悩んだ。

いろいろと複合的なことがあるんだけど、php.queryというライブラリー内部に問題があって、その部分を突き止めるのに時間がかかった。
php.queryは内部的にDOMDocumentを利用していて、この利用を簡単にしてくれるためのライブラリー。
dom操作にはhtmlとxmlの二種類がある。で、エレメントの操作に関してはどっちでもOK。htmlの方が閉じタグ忘れがあると自動的に補完してくれるという便利な機能があるので、コレを使う。

が、domの“追加”の場合だけ appendXML というコマンドが使われている。なので追加するときは「XML準拠」の文字列じゃないとエラーになってしまうのだ。
 
xhtmlという規格の場合はxmlそのまんまにしないといけないんだけど、htmlは緩い規格、html5になるとさらにユルユル。それが厳密なxml操作では頭を悩ませるきっかけとなってしまう。
 
色々と調べているうちに、htmlでタグを補完しておいて、そのdomからxmlを出力するという命令を見つけたので、これで大部分を解決。
やれやれと思っていたら、また別な問題にぶち当たる。
 
$dom->html($html)で追加するのはOK。
ところが $dom->append($html)だとエラーになる。

->html は中身を上書き、なんだけど ->append は追加だから、html以上にxmlのチェックが厳しい。悩んだぜ。本当に。
 
ほぼ1日、これの調査で終わってしまったな。
ま、無事に解決できたのでよかった。

保存と読込、管理画面も大雑把だけど完成したので、後は使い勝手を向上させていくのだ。うひひ。いいものできるぜ。


PAGE TOP