Processing XML in Python



我正在寻找如何抓取XML文件中的所有子元素,但是有些地方出错了。

import xml.etree.ElementTree as ET
tree = ET.parse('C:\Users\f6792150\Documentsprofile.xml')
root = tree.getroot()
for child in root:
print(child.tag, child.attrib)

这是我得到的:

INFO {}
INFO {}
INFO {}
INFO {}
INFO {}
INFO {}

我希望在INFO标签中得到所有的孩子,例如(股票,姓名,地址,电话等),但它是空的。下面是我使用的XML文件:

<?xml version="1.0"?>
<collection shelf = 'profile'>
<INFO>
<TICKER>AAPL</TICKER>
<NAME> Apple Inc.</NAME>
<ADDRESS>1 Infinite Loop;Cupertino, CA 95014;United State</ADDRESS>
<PHONE>408-996-1010</PHONE>
<WEBSITE>http://www.apple.com</WEBSITE>
<SECTOR>Technology</SECTOR>
<INDUSTRY>Consumer Electronics</INDUSTRY>
<FULL_TIME>100,000</FULL_TIME>
<BUS_SUMM>Apple</BUS_SUMM>
<SOURCE>https://finance.yahoo.com/quote/AAPL/profile?p=AAPL</SOURCE> 
</INFO>
<INFO>
<TICKER>T</TICKER>
<NAME> AT and T Inc.</NAME>
<ADDRESS>208 South Akard Street;Dallas, TX 75202;United States</ADDRESS>
<PHONE>210-821-4105</PHONE>
<WEBSITE>http://www.att.com</WEBSITE>
<SECTOR>Communication Services</SECTOR>
<INDUSTRY> Telecom Services</INDUSTRY>
<FULL_TIME>254,000</FULL_TIME>
<BUS_SUMM>at and t</BUS_SUMM>
<SOURCE>https://finance.yahoo.com/quote/T/profile?p=T</SOURCE>
</INFO>
</collection>

干杯!

试试这样写:

for child in root.findall('./INFO//'):
print(child.tag,child.text)

输出:

TICKER AAPL
NAME  Apple Inc.
ADDRESS 1 Infinite Loop;Cupertino, CA 95014;United State
PHONE 408-996-1010

等。

最新更新