-1
次のXPathクエリの結果を理解することはできません:奇妙な結果
from lxml import etree
from io import StringIO
s = '<aaa><bbb>f<ccc>e</ccc>d</bbb></aaa>'
tree = etree.parse(StringIO(s))
print(tree.xpath('//bbb[.="fed"]')) #prints an empty list!
XPath仕様によると、の
文字列値要素ノードは、文書ノードの要素ノードのすべてのテキストノード子孫の文字列値を文書順に連結したものです。
だから、私はbbb要素を得ると期待しています。
私は間違っtree.xpath('//bbb[contains(.,"fed")]')
tree.xpath('//bbb[normalize-space(.)="fed"]')
tree.xpath('//bbb[string-length(.)=3]')
:
さらに困惑は、次のクエリのそれぞれがBBBを返すということですか?それとも、lxmlのバグですか?
「//bbb[.="fed
確かに、私は理解しています。 xmlは上のコードの文字列にあります(これは単なる例です)。 ' f e d 'です。そして、なぜ '/bb[[fed "]'が 'bbb'要素を返さないのか理解できません。とにかく助けてくれてありがとう。 –
Aleksei