在 Python 中处理 XML

Processing XML in Python

我正在寻找如何获取 XML 文件中的所有子元素,但出了点问题。

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

这是我得到的:

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

我原以为所有子项都包含在 INFO 标签中,例如(TICKER、NAME、ADDRESS、PHONE,等等)但它是空的。下面是我正在使用的 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

等等