3
이 lxml doc의 예입니다lxml xpath 함수를 기본 네임 스페이스로 가져 오는 방법은 무엇입니까?
내가 접두사re:
없이 호출 할 수 있도록 공간을 기본
re:test()
기능을 가져올
>>> regexpNS = "http://exslt.org/regular-expressions"
>>> find = etree.XPath("//*[re:test(., '^abc$', 'i')]",
... namespaces={'re':regexpNS})
>>> root = etree.XML("<root><a>aB</a><b>aBc</b></root>")
>>> print(find(root)[0].text)
aBc
. 내가 어떻게 해? 감사!
제안한 두 번째 솔루션에 대해 매우 흥분했지만 XPath의 동작이 나에게 부정적이었습니다. 즉, 네임 스페이스를 지나치지 않고 정규 표현식을 사용하여 XPath를 구성한 경우 (언급 한 것처럼 설정 되었기 때문에) 두 번째 평가시에는 작동하지 않습니다. 어떤 식 으로든 혼란스러워하고,'XPath 함수 '{}가'찾을 수 없습니다 '오류로 실패합니다. 왜 그런가? –
모르겠다. 재현 할 수 없다. 그리고 당신은're : match (...)'를 어디에나 사용하고 있고 어떤 곳에 접두어를 붙이지 않고'match (...) '하지 않을 것이라고 확신합니까? – mata
MWE [여기] (https://gist.github.com/cipri-tom/f85b246fc8a250ea4debf9178a2732b9)를 만들었습니다. ** 편집 ** : MWE는 자체적으로 작동하지 않지만 수출 된 주피터 노트북입니다 . 2 개의 '검색'이 다른 셀에있을 때 노트북에서만 실패하는 것 같습니다. –