Python xml.etree.ElementTree-如何引用我正在解析的当前节点

Python xml.etree.ElementTree-如何引用我正在解析的当前节点,python,xml,loops,parsing,elementtree,Python,Xml,Loops,Parsing,Elementtree,我有两个正在使用的python文件。在一个文件(file1.py)中,我开始一个for循环,该循环进入XML文件中的每个主节点。在另一个文件(file2.py)中,我解析了用于创建一些列表的所有必要属性。然后将这些列表插入file1.py中查询中的MySQL数据库中 当我仅在file2.py中循环通过XML文件中的每个节点时,我就能够成功地解析该节点。但是,由于我在file1.py中开始循环,因此无法引用file2.py中的节点。下面是一个独立工作的示例(请注意:我有意省略部分代码,因为它们在这

我有两个正在使用的python文件。在一个文件(file1.py)中,我开始一个for循环,该循环进入XML文件中的每个主节点。在另一个文件(file2.py)中,我解析了用于创建一些列表的所有必要属性。然后将这些列表插入file1.py中查询中的MySQL数据库中

当我仅在file2.py中循环通过XML文件中的每个节点时,我就能够成功地解析该节点。但是,由于我在file1.py中开始循环,因此无法引用file2.py中的节点。下面是一个独立工作的示例(请注意:我有意省略部分代码,因为它们在这里并不重要):

上面的方法很好,因为我在同一个函数中开始和结束循环。但是,如果我开始在另一个文件中的self.mainNodes中循环,我如何能够引用对象“mainNode”?我有没有办法做以下事情:

 def get_info(self):
     self.values_list.append([CURRENT_NODE.get(i) for i in list_of_attributes])
?

在另一个文件中,我已经声明我正在通过self.mainNodes循环,因此我的insert查询对每个mainNode执行一次

另外,我知道我可以简单地在一个文件中循环所有self.main节点(正如我在第一个示例中所做的),然后在另一个文件中进行插入查询。但是,我通过调用MySQL的LAST_INSERT_ID()函数,将自动递增的主ID重新分配到关系数据库中的其他表中,因此我需要遍历每个主节点并插入(而不是一次插入多行),以便在每次执行脚本时多次成功地调用LAST_INSERT_ID()

最后,我无法在file2.py函数中的file1.py中执行启动循环的函数,因为这将导致模块的循环依赖性,脚本将中断


很抱歉,如果其中任何一个用了奇怪的方式,我很乐意编辑这个问题,以便在必要时进行更详细的讨论。提前感谢。

将要修改的节点添加到输入参数中:

def get_info(self,node):
    self.values_list.append([node.get(i) for i in list_of_attributes])

你能更改
获取信息吗
def get_info(self,mainNode):
?但是这个文件(file2.py)怎么知道我在file1.py中循环通过mainNodes呢?我可以在不运行创建该对象的整个函数的情况下调用该对象吗?为什么需要这样做?只需在传递给函数的节点上调用
.get()
函数。如果你能提供一个简单的答案,那么你就更容易确定你的目标。你是对的,这确实有效。感谢@MarkTolonen的回复,如果您提交的答案是我将接受的
def get_info(self,node):
    self.values_list.append([node.get(i) for i in list_of_attributes])