2015-06-30 12 views
0

我有一个XML文件,如下所示:ElementTree中没有找到根正确

<?xml version="1.0" encoding="UTF-8"?> 
<gexf xmlns="http://www.gexf.net/1.2draft" version="1.2"> 
    <graph mode="static" defaultedgetype="directed"> 
     <nodes> 
      <node id="0" label="Hello" /> 
      <node id="1" label="Word" /> 
     </nodes> 
     <edges> 
      <edge id="0" source="0" target="1" /> 
     </edges> 
    </graph> 
</gexf> 

当我运行下面的代码:

import xml.etree.cElementTree as ET 
import xml.sax 

with open('basic.gexf', 'r') as xml_file: 
    tree = ET.parse(xml_file) 
    root = tree.getroot() 

root.tag 

我得到以下输出:

'{http://www.gexf.net/1.2draft}gexf' 

它不应该只是'gexf'吗?

我的目标是获得图的属性&节点&边缘。我怎样才能不用手动提供命名空间呢?

回答

0

{http://www.gexf.net/1.2draft}代表gexf的名称空间(xmlns)。

您看到的值是预期值。

+0

那我怎么才能得到'gexf'呢?没有处理命名空间。 – SpiderRico

+0

@SpiderRico,我不认为'ElementTree'内置任何东西都可以这样做。你为什么需要它? –

+0

那么我该如何解析和比较呢?在这种情况下,我不需要手动输入名称空间吗? – SpiderRico