【发布时间】:2018-02-05 16:10:45
【问题描述】:
我正在使用 python,我需要为每次出现 sku 找到 sku、min-order-qty 和 step-quantity。
输入文件是:
<product sku="1235997403">
<sku>1235997403</sku>
<name xml:lang="fr-FR">Huile pour entretien des destructeurs de documents HSM</name>
<short-description xml:lang="fr-FR">Flacon 250 ml. Colis de 1 flacon.</short-description>
<category-links>
<category-link name="20319647o.rjpf_20320074o.rjpf" domain="RAJA-FR-WEB-0092-21" default = "1" hotdeal = "0"/>
</category-links>
<online>1</online>
<quantity unit="pcs">
<min-order-quantity>1</min-order-quantity>
<step-quantity>1</step-quantity>
</quantity>
....
</product>
....
我尝试使用 lxml,但未能获得最小订单数量和步骤数量
from lxml import etree
tree = etree.parse('./ST2CleanCourt.xml')
elem = tree.getroot()
for child in elem:
print (child.attrib["sku"])
我尝试使用以下两种解决方案。它有效,但我需要读取文件,所以我写了
from lxml import etree
import codecs
f=codecs.open('./ST2CleanCourt.xml','r','utf-8')
fichier = f.read()
tree = etree.fromstring(fichier)
for child in tree:
print ('sku:', child.attrib['sku'])
print ('min:', child.find('.//min-order-quantity').text)
我总是得到这个错误 print ('min:', child.find('.//min-order-quantity').text) AttributeError: 'NoneType' 对象没有属性 'text'
怎么了?
【问题讨论】:
-
向我们展示您正在使用的代码。
-
<product>是您的根元素。它没有具有 sku 属性的子元素。它确实有一个带有 标记名称 xml 的子元素,但标记名称与属性不同。 (即<foo sku="bar">与<sku>bar</sku>)