- プログラムに詳しくなりたい
686 :デフォルトの名無しさん[]:2015/06/23(火) 06:18:59.05 ID:UUsSDSxD - こういった手法は、XML、HTMLの操作や編集を行う企業では普通に使われているのでしょう。
でもグーグルで検索しても出てこないです。 直列化による編集手法は、翻訳ソフトウェアなどに使えると思います。 例えば、文をSPANで囲ってユーザーに提示し、翻訳完了後にSPANを取り除く場合です。 特にSPANを取り除くのは、まさにSPANを直列化したデータから取り除くだけで完了します。 切り出す時に要素のバランスを取るために付け加えられたノードはどうなるでしょうか? これはマークしておかなければ検出できません。 何故なら現代のXML、HTMLには役に立つ空要素がいくらでもあるからです。 これは、意図して付け加えたノードには参照を保持しておく、あるいは、要素の data属性でマークしておくなどします。 直列化した操作では、マークを見るたびに取り除くだけでよくなります。 この手法に名前があったら教えてください。
|
- プログラムに詳しくなりたい
687 :デフォルトの名無しさん[]:2015/06/23(火) 06:35:24.01 ID:UUsSDSxD - あの・・・
もしまだ名前が無かったら。 僕の名前付けていいですか?
|
- 【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 16
890 :デフォルトの名無しさん[]:2015/06/23(火) 09:47:59.17 ID:UUsSDSxD - Qt5.4.1のQByteArrayにはイテレータがありますが、ドキュメントに記載がありません。
これは使っても大丈夫ですか?
|
- プログラムに詳しくなりたい
690 :デフォルトの名無しさん[]:2015/06/23(火) 09:55:51.23 ID:UUsSDSxD - >>688
テキストにしないのです。 ドキュメントはそのままに、ノードを直列化するのです。 あと、jQueryはJavaScriptのライブラリですが、直列化方式はどの言語でも使えます。 逆に言うと、jQueryが使えない、あるいはjQueryでうまくいかないことが出来るようになります。 たとえば、#TEXTの途中から別の#TEXTの途中で切り分けたい場合どうしますか? レンジを使用して切り分けて#TEXTの末尾に、あるいは先頭に、空のノードが付いたことはありませんか?
|
- プログラムに詳しくなりたい
691 :デフォルトの名無しさん[]:2015/06/23(火) 09:57:56.04 ID:UUsSDSxD - たぶんjQuery最強伝説を信じている人にとって、直列化は素晴らしいものだと思います。
|
- プログラムに詳しくなりたい
693 :デフォルトの名無しさん[]:2015/06/23(火) 10:03:25.26 ID:UUsSDSxD - スタックを使って次数を減らすアルゴリズムを既に知っている人なら、
一時間もあればDOMに対するイテレータを作ることが出来ます。 知らなかったとしても、一時間あれば学べます。 合わせて二時間です。 直列化したノードを木に再生する仕組みも一時間程度で作れるでしょう。 これもスタックを使いますが、イテレータを作った後なら、仕組みはすでに理解できているはずです。 これはとても便利だと思います。 次数が一つ減るとやることは一次分減ります^^
|
- プログラムに詳しくなりたい
694 :デフォルトの名無しさん[]:2015/06/23(火) 10:06:12.06 ID:UUsSDSxD - >>692
じゃあ、どこかに貼り付けますね^^
|
- プログラムに詳しくなりたい
696 :デフォルトの名無しさん[]:2015/06/23(火) 10:09:39.18 ID:UUsSDSxD - http://ideone.com/WnuMoc
こんな感じです。
|
- プログラムに詳しくなりたい
697 :デフォルトの名無しさん[]:2015/06/23(火) 10:12:47.03 ID:UUsSDSxD - >>695
再生するクラスも既に作りました。 http://ideone.com/jQ6RM5
|
- プログラムに詳しくなりたい
698 :デフォルトの名無しさん[]:2015/06/23(火) 10:14:34.66 ID:UUsSDSxD - 最初、DOMをそのままいじくっていたのですが、難しすぎました。
考えなければいけないことが多すぎたのです。 そこでこれはただのデータ構造なのだと考えて次数を一つ減らして 写像をいじくることにしました。 そうしたらなんと簡単! おどろきです。
|