Используя Beautifulsoup, вы можете сделать это следующим образом:
from BeautifulSoup import BeautifulSoup
import re
soup = BeautifulSoup(<your_xml_here>)
nodes = soup.findAll(name=re.compile('^h:input'))
for node in nodes:
if 'id' not in dict(node.attrs):
node['id'] = <whatever you need>
Как видно, чтобы получить все узлы, которые соответствуют шаблону имени, который вы ищете, все, что вам нужно, это регулярное выражение,После этого вы можете проверить атрибуты узла, чтобы убедиться, определено ли id
или нет, и назначить новое значение при необходимости.