Mako

Python으로 XML data를 생성해 내기 위한 툴을 비교해보다가 써 봤는데 괜찮다. django template, genshi, mako를 비교해 봤는데, 홈페이지에 있는 자료로는 다른 template generate하는 툴보다 속도가 빠르다.

django templates나 genshi에 비교해서 control block의 구조가 python과 비슷해서 사용하기 용이한 측면도 있다.

Homepage

Python

from mako.template import Template
from mako.lookup import TemplateLookup
import re

mylookup = TemplateLookup(directories=['.'], input_encoding="utf-8", output_encoding="utf-8")
myt = mylookup.get_template("test.xml")

print myt.render(name = u'홍길동', option = ['apple', 'pine'])

Templates

	<?xml version="1.0" encoding="utf-8"?>
	<quiz>
    <!-- ${name} -->
    <datas>
	% for a in enumerate(option):
    <data index="${a[0]}">${a[1]}</data>
	% endfor
    </datas>
	</quiz>

생성된 XML

<?xml version="1.0" encoding="utf-8"?>
<quiz>
<!-- 홍길동 -->
<datas>
<data index="0">apple</data>
<data index="1">pine</data>
</datas>
</quiz>
Written on February 16, 2011