トップページ > プログラム > 2015年06月23日 > R6uigDGX

書き込み順位&時間帯一覧

35 位/199 ID中時間01234567891011121314151617181920212223Total
書き込み数0000020000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラムに詳しくなりたい

書き込みレス一覧

プログラムに詳しくなりたい
684 :デフォルトの名無しさん[]:2015/06/23(火) 05:36:37.66 ID:R6uigDGX
XML、HTMLの操作はDOM木の状態でやるより、直列化した状態にしてからやったほうが
楽な場合があります。

直列化すると、正規表現のようなマッチが簡単にできます。
直列化すると、(あるノードの途中からあるノードの途中まで切り出すような)
レンジを書き換える操作が簡単に実現します。

DOMが標準化されているため、なんでもDOMで考えてしまいがちですが、別のやり方
の方がうまくいくこともあるみたいです。

ちなみに、DOMのノードに対して直列化を行うには、イテレータを作れば良いです。
イテレータはスタック一本で実現できます。
プログラムに詳しくなりたい
685 :デフォルトの名無しさん[]:2015/06/23(火) 05:49:38.88 ID:R6uigDGX
ある部分を切り出すと、入れ子のバランスが崩れるように見えます。

このバランスの修正は、切り出す部分を一回なめるだけで出来ます。
切り出す部分に対して要素のスタートが有ればスタックにプッシュ。
要素の終わりがあればポップします。

バランスが崩れているのですから、ポップしようとしたら空だったという場合があります。
この時、バランスが崩れていることを検出できるのです。
そして切り出す区間の終わりでスタックに要素が残っている場合があります。
これもまたバランスが崩れている部分です。

ポップできない要素は、切り出す区間の先頭に修正が必要なノードです。
スタックに残った要素は切り出す区間の末尾に付け加える要素です。

直列化してあるので、単純に付け加えるだけで修正が完了します。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。