天天看点

如何遍历root下的所有的child

C:\Users\jeguan\Desktop\FS5000SIPia.xml


<!-- SESSION BEGIN : Thu Jul  2 15:15:11 2015 -->
<ResponseBatch>
<<strong>Response</strong> Status="OKAY" Action="CREATE">
	<FS5000SIPia><pre name="code" class="python">		<<strong>Response</strong> Status="OKAY" Action="CREATE">
			<Test>
			</Test>
		</Response>
	</FS5000SIPia>
</Response>
<<strong>Response</strong> Status="OKAY" Action="CREATE">
	<Test>
		<<strong>Response</strong> Status="OKAY" Action="CREATE">
			<Test>
			</Test>
		</Response>
	</Test>
</Response>
</ResponseBatch>
<!-- SESSION END : Thu Jul  2 15:15:11 2015 -->
           

如何遍历root下的所有的child?

import xml.etree.ElementTree as ET

source = r'C:\Users\jeguan\Desktop\FS5000SIPia.xml'
root = ET.parse(source).getroot()

<span style="font-size:18px;color:#FF0000;">response = root.iter("Response")</span>

# print(root.tag)
# print(root.attrib)
# 
# for child in root:
#     print(child.tag)
#     print(child.attrib)
      
for res in response:
    print(res.attrib)
           

结果:

{'Action': 'CREATE', 'Status': 'OKAY'}
{'Action': 'CREATE', 'Status': 'OKAY'}
{'Action': 'CREATE', 'Status': 'OKAY'}
{'Action': 'CREATE', 'Status': 'OKAY'}
           

对比;

import xml.etree.ElementTree as ET

source = r'C:\Users\jeguan\Desktop\FS5000SIPia.xml'
root = ET.parse(source).getroot()

response = root.iter("Response")

for child in root:
    print(child.tag)
    print(child.attrib)
      
           
Response
{'Status': 'OKAY', 'Action': 'CREATE'}
Response
{'Status': 'OKAY', 'Action': 'CREATE'}
           

结论: 并没有全部遍历到所的有child,即child的child并没有遍历出来。