2017-03-10 1 views
0

지금 당장 Python 2.6.4 버전을 배우고 있습니다. 내가하려는 일은 속성 (orderno)의 값만 구문 분석하고 그 값을 출력하려고하는 것입니다. 두 번째로 XML을 구문 분석하고 속성 "orderno"에서 10238과 같은 속성 값을 찾지 만 "10238,1, Hasselblad 501 CM body, 2355"와 같은 전체 항목을 인쇄합니다. 모두 그것을하는 방법에 대한 포인터?Python XML to csv

from xml.etree import ElementTree 
tree = ElementTree.parse('sample.xml') 
root = tree.getroot() 

for item in root: 
    first = item.find('orderno').text 
    print first 

데이터 :

<item> 
<orderno>10238</orderno> 
<count>1</count> 
<name>Hasselblad 501 CM body</name> 
<price>2355</price> 
</item> 
<item> 
<orderno>20032</orderno> 
<count>1</count> 
<name>Carl Zeiss Planar Lens CB 2.8/80 mm</name> 
<price>1233</price> 
</item> 
<item> 
<orderno>30212</orderno> 
<count>1</count> 
<name>Roll Film 120 Magazine A12</name> 
<price>917</price> 
</item> 
+0

데이터에 ''태그 –

+0

이있는 것이 더 쉽습니다. sample.xml을 편집했습니다. – dermont

+0

음, 이것이 파이썬이라면 코드 들여 쓰기가 심각하게 필요합니다. 현재 혼란 스럽습니다. – Zharf

답변

1

당신은 기본적으로 모든 하위 요소를 반복해야합니다. 여기에서는 목록 이해를 통해 하위 항목을 반복하고 쉼표로 목록에 추가했습니다.

from xml.etree import ElementTree 
tree = ElementTree.parse('sample.xml') 
root = tree.getroot() 

for item in root: 
    print ','.join([sub_item.text for sub_item in item]) 

샘플 출력 :

10238,1,Hasselblad 501 CM body,2355 
20032,1,Carl Zeiss Planar Lens CB 2.8/80 mm,1233 
30212,1,Roll Film 120 Magazine A12,917 

는 희망이 도움이!

+0

완벽하게 작동합니다! – dermont