首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析父级/子级具有相同标记的XML

解析父级/子级具有相同标记的XML
EN

Stack Overflow用户
提问于 2015-05-25 23:23:58
回答 2查看 395关注 0票数 0

我正在使用popshops api &解析美观的XML。数据有四个级别的类别。(即家具是家居和花园的一个子类别,婴儿托儿所家具是家具的一个子类别)

当所有东西都有相同的“类别”标签时,我如何区分类别的4个级别。

代码语言:javascript
复制
<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"/>
EN

回答 2

Stack Overflow用户

发布于 2015-05-26 08:31:55

正如Beautiful Soup文档所强调的,您可以直接引用它们的属性值,而不是元素或标记名:

代码语言:javascript
复制
soup.findAll(id="16000")

代码语言:javascript
复制
soup.findAll(name="Home & Garden")
票数 0
EN

Stack Overflow用户

发布于 2015-05-26 08:53:17

通常,有许多方法可以使用BeautifulSoup区分相同的标记(我不知道您是否对“区分”有特定的定义)。一种可能的方法是通过层次/结构来区分。例如,要仅获取第四级深度<category>s:

代码语言:javascript
复制
subSubSubCategory = soup.select("category category category category");

具体到第四级情况,您也可以通过评估属性leaf="true"来获得它们:

代码语言:javascript
复制
subSubSubCategory = soup.select("category[leaf='true']");

参考:BeautifulSoup > CSS Selector

附注:如果要解析的只是一个完美有效的lxml,那么可以考虑直接使用XML。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30441502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档