我理解如何按属性ID或文本查找节点,但不确定两者的语法。我正在使用xml库,我无法访问lxml,因为无法在我的工作计算机上安装。这是我正在使用的XML的摘录。
<product product-id="000100015BA00-00823">
<ean/>
<upc/>
<page-attributes/>
<custom-attributes>
<custom-attribute attribute-id="color">000100015BA00-00823</custom-attribute>
</custom-attributes>
<pinterest-enabled-flag>false</pinterest-enabled-flag>
<facebook-enabled-flag>false</facebook-enabled-flag>
</product>
<product product-id="000100103H103-07546">
<ean/>
<upc/>
<unit/>
<min-order-quantity>1</min-order-quantity>
<custom-attributes>
<custom-attribute attribute-id="color">000100103H103-07546</custom-attribute>
</custom-attributes>
<pinterest-enabled-flag>false</pinterest-enabled-flag>
</product>
这是我尝试过的:
for x in root.findall('dw:product/dw:custom-attributes/dw:custom-attribute[@attribute-id="color" and text()="000100103H103-07546"]', ns):
print x.text
但是我收到此错误消息: SyntaxError:无效谓词
我认为这是因为text()不适用于xml包。有没有办法在没有lxml的情况下完成这个?
谢谢!