我正在尝试解析以下xml文件:
<?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" />
<node id="2" />
</nodes>
<edges>
<edge id="0" source="0" target="1" />
<edge id="1" source="1" target="2" weight="2.0" />
</edges>
</graph>
</gexf>
可以看出一些边缘有重量,有些则没有。
我的代码如下:
elif name == "edge":
u = attrs.getValue("source")
v = attrs.getValue("target")
w = attrs.getValue("weight")
if w is not None:
self.edgeweight = w
这里我希望w在第一行是None,在XML文件的第二行是2.0。相反,我得到的只是一个错误。控制它的正确方法是什么?
答案 0 :(得分:1)
get()方法就可以了。
w = attrs.get("weight")
if w is not None:
self.weighted = True
self.edgeweight = float(w)
答案 1 :(得分:0)
请尝试以下操作。
if attrs.hasKey("weight"):
w = attrs.getValue("weight")
self.edgeweight = w
我使用this作为参考。它没有指定您是否可以使用"weight" in attrs
,但您可以尝试查看它是否有效。