我必须解析一个文件来查找每个sku
<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
失败。怎么了?
答案 0 :(得分:1)
你的XPath中有拼写错误,你需要vMin = elem.find('quantity/min-order-quantity').text
而不是vMin = elem.find('quantity/min_order_quantity').text
(即连字符而不是下划线)