を使用してSVGドキュメントを解析しようとしていlxml
ます。これが私のコードです:
nsmap = {
'svg': 'http://www.w3.org/2000/svg',
'xlink': 'http://www.w3.org/1999/xlink',
}
root = etree.XML(svg)
# this works (finds the element with the given ID)
root.xpath('./svg:g/svg:g/svg:g[@id="route_1_edge"]', namespaces=nsmap)
# this yields "XPathEvalError: Invalid expression"
root.xpath('./svg:g/svg:g/svg:g[fn:startswith(@id,"route_1")]', namespaces=nsmap)
最初のものが機能し、2番目のものが機能しない理由を誰かが知っていますか?3番目svg:g
をsvg:text
「例外が発生しない」に変更するとg
、特に要素と関係があるように見えますが、これも単純なg[@id="foo"]
検索で問題なく機能します。