我在玩找到的一个xml文件@http://www.jsphylosvg.com/examples/source.php?example=2&t=xml
如果节点的值name="Espresso"
,我想插入一个节点。在
例如,我想换成:
<clade>
<name>Espresso</name>
<branch_length>2.0</branch_length>
</clade>
收件人:
^{pr2}$根据我到目前为止所做的研究,我可以使用xpath
来找到包含espresso的节点(这应该行得通,但是不行吗?)
import re, sys
import lxml.etree
f = open("test.xml", "r")
data = f.read()
tree = lxml.etree.XML(data)
if tree.xpath('//name/text()="Espresso"'):
insert new child here
此时,应该可以使用lxml.etree.Element
创建xml节点,并使用insert将它们附加到xml文档中
然而,虽然这在理论上听起来很棒,但我无法让它发挥作用。
如有任何帮助/建议,我将不胜感激
您的XPath语句不完全正确。我想你想要的是:
然后在匹配项之后追加元素:
^{pr2}$编辑:
由于您的文档有一个名称空间,所以您需要将名称空间映射传递给XPath函数,并在标记名前面加上名称空间前缀,如下所示:
相关问题 更多 >
编程相关推荐