gpt4 book ai didi

python - 在Python中: use xpath with an element from a list

转载 作者:行者123 更新时间:2023-11-30 23:41:33 25 4
gpt4 key购买 nike

在 Stackoverflow 几个人的帮助下,我想出了以下代码:

import lxml.etree

f = open("PaVE.tre.xml", "r")
out = open("PaVE.2.xml", "a")
data = f.read()
line=["HPV16","Alpha"]

tree = lxml.etree.XML(data)
nsmap = {'phylo': 'http://www.phyloxml.org'}
matches = tree.xpath('//phylo:name[text()="HPV16"]', namespaces=nsmap)

for e in matches:
#do something fun

但是,我将 HPV16 硬编码到 xpath 表达式中。我想从第 [0] 行获取 HPV16。我在想这样的事情:

matches = tree.xpath('//phylo:name[text()='+line[0]+']', namespaces=nsmap)

但是,这似乎不起作用!一如既往,任何帮助将不胜感激

编辑:我按照要求从 xml 文件中添加了几行:

<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phyloxml.org" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd">
<phylogeny rooted="true">
<clade>
<clade>
<branch_length>0.5</branch_length>
<clade>
<name>HPV16</name>
<branch_length>1.0</branch_length>
</clade>
<clade>

最佳答案

您忘记了 XPath 表达式中的引号:

>>> '//phylo:name[text()='+line[0]+']'
'//phylo:name[text()=something]'

我会这样做:

>>> '//phylo:name[text()="%s"]' % line[0]
'//phylo:name[text()="something"]'

关于python - 在Python中: use xpath with an element from a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com