2017-02-01 18 views
0
import xml.etree.ElementTree as ET 

tree = ET.parse("D:\Parsed_CCD.xml") 
doc = tree.getroot() 


codeList=[] 
codeSystemList=[] 
codeSystemName=[] 
displayName=[] 
code=[] 
codeS=[] 
codeN=[] 
display=[] 
status=[] 
stime=[] 
etime=[] 


for elem1 in doc.findall('.//medicationsInfo/entryInfo/productCode/code'): 
    codeList.append(elem1.text) 

for elem2 in doc.findall('.//medicationsInfo/entryInfo/productCode/codeSystem'): 
    codeSystemList.append(elem2.text) 


for elem3 in doc.findall('.//medicationsInfo/entryInfo/productCode/codeSystemName'): 
    codeSystemName.append(elem3.text) 

for elem4 in doc.findall('.//medicationsInfo/entryInfo/productCode/displayName'): 
    displayName.append(elem4.text) 

for elem5 in doc.findall('.//medicationsInfo/entryInfo/productCode/translation/code'): 
    code.append(elem5.text) 

for elem6 in doc.findall('.//medicationsInfo/entryInfo/productCode/translation/codeSystem'): 
    codeS.append(elem6.text)  

for elem7 in doc.findall('.//medicationsInfo/entryInfo/productCode/translation/codeSystemName'): 
    codeN.append(elem7.text) 

for elem9 in doc.findall('.//medicationsInfo/entryInfo/productCode/translation/displayName'): 
    display.append(elem9.text) 

for elem8 in doc.findall('.//medicationsInfo/entryInfo/statusCode'): 
    status.append(elem8.text) 

for elem10 in doc.findall('.//medicationsInfo/entryInfo/startTime'): 
    stime.append(elem10.text) 

for elem11 in doc.findall('.//medicationsInfo/entryInfo/endTime'): 
    etime.append(elem11.text) 


for i in range(len(codeList)): 
    print (codeList[i],codeSystemList[i],codeSystemName[i],displayName[i],code[i],codeS[i],codeN[i],status[i],etime[i]) 

Мне нужно напечатать все столбцы значения, но проблема я печать данных по столбцам, но я не в состоянии извлечь все данные, потому что у меня есть вложенный файл xml и имеет другое количество значений. Цикл for достигает только минимального числа, а остальные данные не отображаются. Можно ли использовать разные для цикла, такие как i и j, и добавить их оба и отобразить их?Невозможно получить все данные из вложенного XML

+0

Можете ли вы показать нам файл XML также? – Optimus

+0

еще как можно печатать в пустых местах? – Prasanna

+0

это очень огромный .. – Prasanna

ответ

0

Взгляните на функцию itertools.izip_longest это не будет вставить None в пробелы и должны решить вашу проблему

rows=list(itertools.izip_longest(codeList,codeSystemList,codeSystemName,displayName,code,codeS,codeN,status,etime)) for row in rows: print(row)

+0

первые четыре колонки я получаю как никто. – Prasanna

+0

код, коды ... они снова вложены ниже codeList, codeSystemList .... – Prasanna

+0

код, коды ... являются подтегами под тегом , в указанном выше XML-файле. – Prasanna

 Смежные вопросы

  • Нет связанных вопросов^_^