Ваше выражение для findall неверно. findall будет искать на основе вашего выражения, и вы в настоящий момент говорите ему искать только в узле, в котором он находится. В узле root нет узлов с этим пространством имен, поэтому он правильно возвращает пустой список. Таким образом, ваше выражение может работать, если вы запустите его в родительском узле, где расположен круговой тег. Но, кроме пространства имен, вам нужно передать либо групповой символ, чтобы получить все теги этого пространства имен, либо, если вас интересует круговой тег, укажите это.
print(root[0][1].findall('{http://www.ghi.org/in-ghi-rep-par}*'))
print(root[0][1].findall('{http://www.ghi.org/in-ghi-rep-par}Circular'))
Но при условии, что вы не знаете где тег может находиться в xml, тогда вы можете выполнить поиск по root и использовать .//
, чтобы сообщить своему спрессированному xpath, что нужно искать его во всех элементах рекурсивно из этого элемента. Опять же, вам нужно указать подстановочный знак для имени тега или фактического имени тега.
print(root.findall('.//{http://www.ghi.org/in-ghi-rep-par}*'))
print(root.findall('.//{http://www.ghi.org/in-ghi-rep-par}Circular'))
Например:
print(root.findall('.//{http://www.ghi.org/in-ghi-rep-par}Circular')[0].text)
ВЫХОД
DBS.No.FBC.BC.34/13.12.001/99-2000 dt April 6, 2000