使用xpath按属性ID和文本查找节点

时间:2018-05-27 23:07:53

标签: python xml xpath elementtree

我理解如何按属性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的情况下完成这个?

谢谢!

0 个答案:

没有答案