に得ることができない私は、私が検索する必要がある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>
を私は、祖父母の要素を取得し、取得ブランチ内のテキストを経由して検索を実行しようとしていますvipAddress
とport
が、私は、私がしようとすると、以下のコードを使用してvipAddress
とport
を印刷するとき、それは私が実際に探していた1の代わりに、それらのすべてを印刷します
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()')
例:
私が代わりにtarget_environment=vip.address.com
とport=9011
を返すのでmaster
を検索するためだった場合、それは私が、私はシンプルな間違った私は何を見ることができない何かをやっていると確信してとport=[9010,9011]
を返します。
感謝:
はまた、私は常にリストを返す.xpathだと思うので、このすべてが動作する場合でも、あなたの
port
は一緒に私のような何かを得る[9011]
がそれを置くようになります! – len