我写了一个似乎可以正常工作的方法来递归地遍历xml。但是它返回None而不是字符串。我发现它与我调用递归函数的方式有关,但无法弄清楚如何使其起作用。 print(“ returning:{}”。format(path)打印正确的结果,但返回值为None。
这是我的代码:
# retrieves the path of an given xml-node
def getParentValueAndId(self,node, path):
actual_node = node.getparent().getparent().getparent().find(self.openEHR_prefix + "rm_attribute_name")
node_id = node.getparent().getparent().find(self.openEHR_prefix + "node_id").text
if (path == "value" and node_id is not None):
path = "/{}[{}]/{}".format(actual_node.text, node_id, path)
try:
self.getParentValueAndId(actual_node, path)
except:
pass
elif not (node_id is None):
path = "/{}[{}]{}".format(actual_node.text, node_id, path)
try:
self.getParentValueAndId(actual_node, path)
except:
print("returning: {}".format(path))
return path
else:
try:
self.getParentValueAndId(actual_node, path)
except:
pass