2017-02-01 50 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功能这一点,将在空格中插入无,应该解决您的问题

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