XMLを表示するときは、実体参照へ変換しなければいけません。
「普段使用しているエディタから変換できれば楽ちんだよね」と思い、xyzzy Lispで変換プログラムを書いてみました。
プログラム
; convert-xml (defparameter *conversion-alist* '((#\< . "<") (#\> . ">") (#\& . "&") (#\" . """) (#\' . "'"))) (defun convert-xml () (interactive "*") (let ((input-buffer (window-buffer (selected-window)))) (with-output-to-temp-buffer ("*Converted*") (with-open-stream (s (make-buffer-stream input-buffer)) (loop (let ((c (read-char s nil))) (if c (format t "~A" (convert-char c *conversion-alist*)) (return nil)))))))) (defun convert-char (c alist) (let ((conversion (assoc c alist))) (if conversion (cdr conversion) c)))
実行すると現在のバッファを読み込み、一時バッファへ変換後のxmlを表示します。
工夫したところは、変換の定義をalistにしたところです。
参考
0 件のコメント:
コメントを投稿