【问题标题】:Processing XML in Python在 Python 中处理 XML
【发布时间】:2021-03-05 12:07:22
【问题描述】:

我正在寻找如何获取 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 标记中,例如(股票代码、姓名、地址、电话等)但它是空的。下面是我正在使用的 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>

干杯!

【问题讨论】:

    标签: python-3.x xml elementtree


    【解决方案1】:

    尝试类似:

    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
    

    等等

    【讨论】:

    • 谢谢!我试图只获取第一个 INFO 的 child.tag 以了解每个 INFO 标记内的哪些元素。
    猜你喜欢
    • 2010-09-05
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多