...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

WebDAV Client (9)

取得すべきデータサイズと取得しているデータサイズが合ってないせいで変なところで途切れているのかなー,と思っていろいろ頑張ってみた.
1つのノードが途切れてしまうようなサイズで送信されたデータを判別して,途切れたノードをちまちまと連結してやったら,まともな XML データを作れた.
元々こうしないといけなかったのかもしれないな.
HTTP プロトコルがいまいちわかってないのが大問題(^^;


前は XML データを取得しながら多種の parse も同時にやっていたけど,ややこしいので XML データを作ってから parse してファイル名とかを得る方法に変えた.
効率は落ちるけど,コードがすっきりする方が,やっぱりいいなー.
ただ,別の情報を得るために何度も parse するのはさすがに重いだろうから,何かしら考えないと.
D言語に SAX 方式の XML ライブラリなんて存在するのだろうか・・・.

気軽に使えそうな tinyxml がいいかなーと思ったけど,メモリ上の char[] に入った改行なしの XML を parse する方法がわからんかった.
普通にそういう機能が用意されているが見つけられないのか,はたまた,std.stream 辺りのものでごちゃごちゃせねばならんのか,あるいは・・・.
進んでいるようでなかなか進まないねえ.