Etree 返回"random"字符串而不是属性名称



我对python和树都是新手,遇到了一些问题。

我有以下数据集结构为:

<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
  <node id="someNode">
    <data key="label">someNode</data>
  </node>
</graphml>

我想获得根元素和节点元素的属性和属性值。

我已经尝试使用Python xml.etree.ElementTree如下:

import xml.etree.ElementTree as etree
tree = etree.parse('myDataset')
root = tree.getroot()
print('Root: ', root)
print('Children: ', root.getchildren())

但是我得到的是:

Root:  <Element '{http://graphml.graphdrawing.org/xmlns}graphml' at 0x031DB5A0>
Children:  [<Element '{http://graphml.graphdrawing.org/xmlns}key' at 0x03F9BFC0>

我也尝试了。text和。tag,它们只删除了"at 0x03…"。

希望这个问题是可以理解的,有人知道解决办法。

如果您希望将根节点和子节点输出为xml文本,而不是默认表示,请使用xml.etree.ElementTree.tostring(root)

for child in root:
    xml.etree.ElementTree.tostring(child)

官方文档在这里:https://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring

如果你想要标签名,使用每个元素的tag属性:

print(root.tag)
for child in root:
    print(child.tag)

描述可用属性的文档:https://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element

最新更新