我正在与popshops api& amp;在美丽的汤中解析XML。 数据有四个级别的类别。 (即家具是家庭和花园的子类别,婴儿托儿所家具是家具的子类别)
当所有内容具有相同的标记“类别”时,如何区分4个类别的类别。
<category id="16000" name="Home & Garden">
<categories>
<category id="16669" name="Furniture">
<categories>
<category id="17135" name="Baby Nursery Furniture">
<categories>
<category id="17146" name="Baby Beddings & Blankets" leaf="true"/>
答案 0 :(得分:0)
在Beautiful Soup文档突出显示时,您可以直接引用其属性值而不是元素或标记名称:
soup.findAll(id="16000")
OR
soup.findAll(name="Home & Garden")
答案 1 :(得分:0)
通常,您可以通过多种方式使用BeautifulSoup
来区分同一个代码(我不知道您是否具有&#34的特定定义;区分&#34;这里)。一种可能的方法是通过层次结构/结构进行区分。例如,仅获得第四级深度<category>
s:
subSubSubCategory = soup.select("category category category category");
具体针对第四级案例,您还可以通过评估属性leaf="true"
来获取它们:
subSubSubCategory = soup.select("category[leaf='true']");
供参考:BeautifulSoup > CSS Selector
附注:如果您要解析的所有内容都是完美有效的XML,则可能需要考虑直接使用lxml。