无法用 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.
的理想方式
id
是 Product
的属性,不是子元素,因此您可以通过以下方式访问它:
p['id']
我已经用 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.
的理想方式id
是 Product
的属性,不是子元素,因此您可以通过以下方式访问它:
p['id']