Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
遍历GraphML(XML)文件并提取所有值_Xml_Python 3.x_Loops_Graphml - Fatal编程技术网

遍历GraphML(XML)文件并提取所有值

遍历GraphML(XML)文件并提取所有值,xml,python-3.x,loops,graphml,Xml,Python 3.x,Loops,Graphml,我有一个XML(实际上是GraphML)文件,如下所示: <?xml version="1.0" ?> <graphml> <key attr.name="label" attr.type="string" id="label"/> <graph edgedefault="directed" id=""> <node id="0"> <type>p</type&g

我有一个XML(实际上是GraphML)文件,如下所示:

<?xml version="1.0" ?>
<graphml>
    <key attr.name="label" attr.type="string" id="label"/>
    <graph edgedefault="directed" id="">
        <node id="0">
            <type>p</type>
            <label>sshd(3,2)</label>
        </node>
        <node id="1">
            <type>e</type>
            <label>user(3)</label>
        </node> 
    </graph>
</graphml>
这给我的是前两个值重复了两次,换句话说:

p  sshd(3,2)
p  sshd(3,2)
而不是:

p  sshd(3,2)
e  user(3)

有人能帮忙吗?

x在嵌套循环中从未使用过

for child in root:
    for x in child:

嵌套循环中从不使用x

for child in root:
    for x in child:

您可以一次指定从根节点到
节点
元素的确切路径:

for node in root.findall('graph/node'):
    print(node.find('type').text, node.find('label').text)

您可以一次指定从根节点到
节点
元素的确切路径:

for node in root.findall('graph/node'):
    print(node.find('type').text, node.find('label').text)

这很有效,谢谢!,但是,它不会检索每个节点的“id”值。我应该把问题说得更清楚。我想返回:0 p sshd(3,2)1 e user(3)只需添加:
node.get('id')
!,但是,它不会检索每个节点的“id”值。我应该把问题说得更清楚。我想返回:0pshd(3,2)1e用户(3)只需添加:
node.get('id')