没有返回类型/找不到标签

时间:2016-11-19 18:00:03

标签: xpath lxml xml.etree

我必须解析一个文件来查找每个sku

的min和mult qty
<product sku="13603">
  <sku>13603</sku>
  <quantity unit="pcs">
    <min-order-quantity>1</min-order-quantity>
    <step-quantity>1</step-quantity>
  </quantity>    
</product>
<product sku="13713">
  <sku>13713</sku>
  <quantity unit="pcs">
    <min-order-quantity>1</min-order-quantity>
    <step-quantity>1</step-quantity>
  </quantity>
</product>    
...

我的程序很简单

from lxml import etree
tree = etree.parse('./file-above.xml')
for elem in tree.iterfind('product'):
vSKU = elem.find('sku').text
vMin = elem.find('quantity/min_order_quantity').text

当我运行它时,会产生错误:

  

AttributeError:'NoneType'对象没有属性'text'

以交互方式运行并将最后一行更改为...

print elem.find('sku').text

它有效但行......

print elem.find('quantity/min_order_quantity').text

失败。怎么了?

1 个答案:

答案 0 :(得分:1)

你的XPath中有拼写错误,你需要vMin = elem.find('quantity/min-order-quantity').text而不是vMin = elem.find('quantity/min_order_quantity').text(即连字符而不是下划线)