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にしたところです。
参考