无法用 python 解析 XML

Trouble parsing XML with python

我已经用 Python 中的 BeautifulSoup 解析了一个 XML 文件,但我无法从中提取数据。 XML 的结构示例如下:

<Products page="0" pages="-1" records="27">
  <Product id="ABC001">
    <Name>This product name</Name>
    <Cur>USD</Cur>
    <Tag>Text</Tag>
    <Classes>
      <Class id="USD">
        <ClassCur>USD</ClassCur>
        <Identifier>XYZ123456</Identifier>
      </Class>
    </Classes>
  </Product>
  <Product id="XYZ002">
    <Name>That product name</Name>
    <Cur>EUR</Cur>
    <Tag>More Text</Tag>
    <Classes>
      <Class id="EUR">
        <ClassCur>EUR</ClassCur>
        <Identifier>VDSHG123456</Identifier>
      </Class>
    </Classes>
  </Product>
</Products>

我一直试图完成但迄今为止未能完成的第一件事是提取所有产品和 Class id 的 "ABC001""XYZ002" 等..

我试过的是

products = soup.find_all("Product")

for p in products:
    print(p.find("name")) # gets the name tag
    print(p.find("cur")) # gets the cur tag
    # ...etc

但是,我不知道如何在 Product 中访问 id。例如,p.find("product") returns None.

请注意,当我使用 bs4 时,我 没有 - 只是我用 Python + bs4 做了很多网络抓取并且有发现 bs4 在浏览 HTML 时很有用,因此假设它是处理 XML.

的理想方式

idProduct 的属性,不是子元素,因此您可以通过以下方式访问它:

p['id']