2012-07-03 7 views
2
내가 사용하여 다음 HTML 코드를 생성하기 위해 노력하고있어

을 CL-사람 :CL-사람과 형식

(with-html-output-to-string (*standard-output* nil) 
(:html 
    (:body 
    (do ((cnt 1 (+ cnt 1))) 
     ((> cnt 3)) 
    (htm (:div :id (format t "cnt_~A" cnt))))))) 

하지만 그 대신 I :

<html> 
<body> 
<div id="cnt_1"></div> 
<div id="cnt_2"></div> 
<div id="cnt_3"></div> 
</body> 
</html> 

그리고 여기 내가 일하는 것이 생각 코드는 다음 출력을 얻으십시오 :

<html><body><divcnt_1></div><divcnt_2></div><divcnt_3></div></body></html> 

다음과 같은 결과가 나옵니다. id는 함수 호출과 작동하지 않습니다. 내가 cl-who에서 형식을 사용할 수 없다는 것을 의미합니까? 대신 무엇을 사용해야합니까?

답변

5

스트림에 직접 쓰고 싶지 않기 때문입니다.

CL-USER> (with-html-output-to-string (s) (:div :id "test")) 
"<div id='test'></div>" 

CL-USER> (with-html-output-to-string (s) 
      (:html 
      (:body 
      (do ((cnt 1 (+ cnt 1))) 
       ((> cnt 3)) 
       (htm (:div :id (format nil "cnt_~A" cnt))))))) 

"<html><body><div id='cnt_1'></div><div id='cnt_2'></div><div id='cnt_3'></div></body></html>" 

그런데 스트림에 직접 쓰려면 CL-WHO : FMT를 사용하십시오.

+0

'FMT'는 속성 값 섹션이 아닌 구문의 내용 섹션에서 작동합니다. – Xach

+0

@Xach : 작품에서 나는 op의 FORMAT (현재 스트림에 쓰는 것)처럼 작동하기 때문에 기대 한대로 작동한다고 가정합니다. – Daimrod