为什么我不能使用Xpath` .// node-name`来访问节点?

时间:2013-01-29 06:15:43

标签: python xml xpath elementtree

xml文件是这样的:

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="Cistrome.xsl"?>
<motifs>
  <motif id="hPDI060">
  ..........
  </motif>
</motifs>

我的python代码是这样的:

    tree = ElementTree.parse(sys.argv[1])
    for node in tree.findall('.//motifs'):
        print("found")

但是,运行代码后,found字符串不会显示,换句话说,.//motifs找不到正确的代码。

有没有人有这方面的想法?谢谢!

2 个答案:

答案 0 :(得分:1)

findall将查找当前标记的所有子元素,而当前标记为“motifs”。因此,没有找到任何东西

您可以通过

查看当前标记的内容
> tree.tag
> 'motifs'

确定您想要的内容,motifsmotif

答案 1 :(得分:1)

tree.findall('*')会在根元素motif下找到所有motifs