2015-02-07 2 views
0

xml 파일을 만들어야합니다. 다음과 같은 형식을 가질 가능성이 있습니까? 목록의 len은 일반적으로 더 크고 항상 다릅니다. 그래서 나는리스트 길이의 요청으로 if 루프를 사용할 수 없다.Python : lxml 서식 지정

필요한 형식 :

<test> 
    <fanart> 
    <thumb preview="http://image.tmdb.org/t/p/w342/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg">http://image.tmdb.org/t/p/original/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg</thumb> 
    <thumb preview="http://image.tmdb.org/t/p/w342/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg">http://image.tmdb.org/t/p/original/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg</thumb> 
    <thumb preview="http://image.tmdb.org/t/p/w342/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg">http://image.tmdb.org/t/p/original/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg</thumb> 
    <thumb preview="http://image.tmdb.org/t/p/w342/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg">http://image.tmdb.org/t/p/original/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg</thumb> 
    </fanart> 
</test> 

코드 :

import lxml.builder 

E = lxml.builder.ElementMaker() 
nfo = E.test() 

list = [('http://image.tmdb.org/t/p/w342/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg','http://image.tmdb.org/t/p/original/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg'), 
     ('http://image.tmdb.org/t/p/w342/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg','http://image.tmdb.org/t/p/original/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg'), 
     ('http://image.tmdb.org/t/p/w342/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg','http://image.tmdb.org/t/p/original/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg'), 
     ('http://image.tmdb.org/t/p/w342/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg','http://image.tmdb.org/t/p/original/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg')] 

for (link_thumb, link_orig) in list: 
    fanart = E.fanart(E.thumb(link_orig,preview=link_thumb)) 
    nfo.append(fanart) 


print lxml.etree.tostring(nfo, pretty_print=True) 

출력 :

<test> 
    <fanart> 
    <thumb preview="http://image.tmdb.org/t/p/w342/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg">http://image.tmdb.org/t/p/original/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg</thumb> 
    </fanart> 
    <fanart> 
    <thumb preview="http://image.tmdb.org/t/p/w342/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg">http://image.tmdb.org/t/p/original/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg</thumb> 
    </fanart> 
    <fanart> 
    <thumb preview="http://image.tmdb.org/t/p/w342/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg">http://image.tmdb.org/t/p/original/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg</thumb> 
    </fanart> 
    <fanart> 
    <thumb preview="http://image.tmdb.org/t/p/w342/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg">http://image.tmdb.org/t/p/original/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg</thumb> 
    </fanart> 
</test> 

감사합니다!

답변

2

image에 대해 fanart 요소를 추가했습니다. 대신 1 fanart 요소를 만들고 nfo에 추가하십시오. 각 이미지를 fanart 요소에 추가하십시오.

import lxml.builder 

E = lxml.builder.ElementMaker() 
nfo = E.test() 
fanart = E.fanart() 
nfo.append(fanart)  

items = [('http://image.tmdb.org/t/p/w342/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg','http://image.tmdb.org/t/p/original/krkkgbtWHlMXVLbPGdIxzxKJERM.jpg'), 
     ('http://image.tmdb.org/t/p/w342/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg','http://image.tmdb.org/t/p/original/izYCpovyAIKLI2i3gmhSKxlR8Pk.jpg'), 
     ('http://image.tmdb.org/t/p/w342/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg','http://image.tmdb.org/t/p/original/vmrnxaYx1xlG5jhuFUs51dd3VPA.jpg'), 
     ('http://image.tmdb.org/t/p/w342/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg','http://image.tmdb.org/t/p/original/pPFbXcONHBntJIAsEn8TaIPPCpZ.jpg')] 

for (link_thumb, link_orig) in items: 
    fanart.append(E.thumb(link_orig,preview=link_thumb))  

print lxml.etree.tostring(nfo, pretty_print=True) 
+0

고맙습니다. 너무 쉽습니다. – user2534685

+0

문제를 해결 한 경우에도 내 대답을 수락 할 수 있습니다.) –