【问题标题】:capture first node of its kind捕获同类的第一个节点
【发布时间】:2021-02-12 00:44:55
【问题描述】:

我有以下 XML 响应:

<?xml version="1.0" encoding="utf-8"?>
<product_export_response>
  <success>true</success>
   <products>
    <product>
      <product_id>1</product_id>
      <lists>
        <list>
          <product>
            <product_id xmlns="API:id_name_store">1</product_id>
          </product>
        </list>
      </list>       
    </product>
    <product>
      <product_id>2</product_id>
      <lists>
        <list>
          <product>
            <product_id xmlns="API:id_name_store">2</product_id>
          </product>
        </list>
      </list> 
    </product>
  </products>  
</product_export_response>  

我正在寻找同类中的第一个 product_id 节点,最终结果应该是:

1
2

我的尝试:

soup = BeautifulSoup(req.text, 'lxml')
for prod in soup.select('product'):
    print('prod:', prod.find('product_id').string)

这是返回:

1
1
2
2

【问题讨论】:

    标签: python-3.x xml beautifulsoup


    【解决方案1】:

    尝试使用 CSS 选择器:products &gt; product &gt; product_id

    soup = BeautifulSoup(xml, "lxml")
    
    for tag in soup.select("products > product > product_id"):
        print(tag.text)
    

    输出:

    1
    2
    

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多