【问题标题】:Trouble parsing XML with python使用 python 解析 XML 时遇到问题
【发布时间】:2016-08-31 17:58:56
【问题描述】:

我在 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>

我一直试图完成但迄今为止未能完成的第一件事是提取所有产品和类 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") 返回None

请注意,当我使用 bs4 时,我没有 - 只是我已经使用 Python + bs4 进行了很多网络抓取,并且发现 bs4 在浏览 HTML 时很有用,因此假设这将是处理 XML 的理想方式。

【问题讨论】:

  • 向我们展示您迄今为止尝试过的代码。

标签: python xml bs4


【解决方案1】:

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

p['id']

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多