ルートノードを含めて属性xを持つすべての要素を取得したいと考えています。私が現在持っているのは、ルートノードが含まれていないことを除いて動作するということです。プリントアウトからわかるように、B要素とCa要素を選択します。しかし、出力にはAも含まれなければならない。すなわち、[要素A、要素B、要素Ca]である。ルートノードを取得するにはどうしたらいいですか?XPATH pythonの特定の属性を持つルートとすべての子孫要素を選択する
from lxml import etree as ET
expr='''
<A x="1">
<B z="1">
<C y="1"/>
</B>
<B x="1">
<Ca x="1" y="2"/>
</B>
</A>
'''
expr_root=ET.fromstring(expr)
print(expr_root.findall(".//*[@x]")) #[<Element B at 0xd0118c8>, <Element Ca at 0xd011b48>]
これは動作しません。 SyntaxError:要素に絶対パスを使用できません – user2015487