У меня есть XML-дерево, которое мне нужно искать:Python LXML - не может получить к родителю
<instance>
<hostName>hostname1</hostName>
<port enabled="true">9010</port>
<metadata>
<branch>master</branch>
</metadata>
<vipAddress>vip.address.com</vipAddress>
</instance>
<instance>
<hostName>hostname2</hostName>
<port enabled="true">9011</port>
<metadata>
<branch>sub_branch</branch>
</metadata>
<vipAddress>vip2.address.com</vipAddress>
</instance>
Я пытаюсь сделать поиск с помощью текста в отрасли затем получить элемент GrandParent и получить vipAddress
и port
, но когда я использую этот код, когда я пытаюсь напечатать vipAddress
и port
печатает все из них вместо того, что я был на самом деле ищу:
branch_name = 'master'
for record in tree.xpath('//branch/text()'):
if(record == branch_name):
branch = record.getparent()
target_environment = branch.xpath('//vipAddress/text()')
print(target_environment)
target_port = branch.xpath('//port/text()')
пример:
Если бы я должен был искать master
вместо возвращения target_environment=vip.address.com
и port=9011
он вернется target_environment=[vip.address.com, vip2.address.com]
и port=[9010,9011]
Я уверен, что я делаю что-то простое неправильно, я просто не могу видеть, что.
спасибо, это работает отлично! – len