Python xml.etree.ElementTree - 如何引用我正在解析的当前节点
Python xml.etree.ElementTree - how to reference the current node that I am parsing
我正在处理两个 python 文件。在一个文件 (file1.py) 中,我开始一个 for 循环,它进入 XML 文件中的每个主节点。在另一个文件 (file2.py) 中,我解析了用于创建一些列表的所有必要属性。然后将这些列表插入到 file1.py.
查询中的 MySQL 数据库中
当我只循环遍历 file2.py 中的那个节点时,我能够成功解析 XML 文件中的每个节点。但是,由于我在 file1.py 中开始循环,所以我无法引用我在 file2.py 中所在的节点。这是一个独立运行的示例(请注意:我故意省略了部分代码,因为它们在这里并不重要):
def get_info(self):
for mainNode in self.mainNodes:
self.values_list.append([mainNode.get(i) for i in list_of_attributes])
上面的代码工作正常,因为我在同一个函数中开始和结束我的循环。但是,如果我开始在另一个文件中循环遍历 self.mainNodes,我将如何引用对象 "mainNode"?我有什么办法可以做类似的事情:
def get_info(self):
self.values_list.append([CURRENT_NODE.get(i) for i in list_of_attributes])
?
在另一个文件中我已经声明我正在循环 self.mainNodes 所以我的插入查询对每个主节点执行一次。
此外,我知道我可以简单地在一个文件中遍历 self.mainNodes(就像我在第一个示例中所做的那样),然后在另一个文件中进行插入查询。但是,我通过调用 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])
我正在处理两个 python 文件。在一个文件 (file1.py) 中,我开始一个 for 循环,它进入 XML 文件中的每个主节点。在另一个文件 (file2.py) 中,我解析了用于创建一些列表的所有必要属性。然后将这些列表插入到 file1.py.
查询中的 MySQL 数据库中当我只循环遍历 file2.py 中的那个节点时,我能够成功解析 XML 文件中的每个节点。但是,由于我在 file1.py 中开始循环,所以我无法引用我在 file2.py 中所在的节点。这是一个独立运行的示例(请注意:我故意省略了部分代码,因为它们在这里并不重要):
def get_info(self):
for mainNode in self.mainNodes:
self.values_list.append([mainNode.get(i) for i in list_of_attributes])
上面的代码工作正常,因为我在同一个函数中开始和结束我的循环。但是,如果我开始在另一个文件中循环遍历 self.mainNodes,我将如何引用对象 "mainNode"?我有什么办法可以做类似的事情:
def get_info(self):
self.values_list.append([CURRENT_NODE.get(i) for i in list_of_attributes])
?
在另一个文件中我已经声明我正在循环 self.mainNodes 所以我的插入查询对每个主节点执行一次。
此外,我知道我可以简单地在一个文件中遍历 self.mainNodes(就像我在第一个示例中所做的那样),然后在另一个文件中进行插入查询。但是,我通过调用 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])