Python 在另一个文件中编辑 etree 子元素文本
Python editing etree subelement text in another file
首先,我对 python 比较陌生,目前我正在试验 lxml 和 etree。我目前有一个 python 文件 (generateXML.py),它在 xml 中生成一个模板。我正在使用 lxml 库和 etree。例如:
def generate_tree(self):
parent_root = etree.Element("PARENT")
first_child = etree.SubElements(parent_root, "first_child").text = "FIRST"
second_child = etree.SubElements(parent_root, "second_child").text = "SECOND"
third_child = etree.SubElements(parent_root, "third_child").text = "THIRD"
这将创建一个包含一个父节点和三个子节点的 xml 文件。
现在我有另一个名为 editXML.py 的文件,它根据我从命令行 运行 时传入的参数替换子项的文本。
from generateXML import generate_tree
def generate_new_tree():
#code to replace filler names
当我从命令行 运行 "python editXML Tim Tom Tony" 时,我想用 "Tim" 替换 "FIRST",用 "Tom" 替换 "SECOND" , 和 "THIRD" 与托尼。
我的问题本质上是如何从 editXML.py 中的 generateXML.py 访问变量 first_child、second_child 和 third_child。
我试过了
from generateXML import generate_tree
但我似乎无法访问那样的变量。任何帮助在这里都会有所帮助
更改以下内容:
def generate_tree():
...
return parent_root
from generateXML import generate_tree
def generate_new_tree():
pList = ['Tim', 'Tom','Tony']
root = generate_tree()
for i, child in enumerrate(root):
child.text = pList[i]
for child in root:
print(child.text)
首先,我对 python 比较陌生,目前我正在试验 lxml 和 etree。我目前有一个 python 文件 (generateXML.py),它在 xml 中生成一个模板。我正在使用 lxml 库和 etree。例如:
def generate_tree(self):
parent_root = etree.Element("PARENT")
first_child = etree.SubElements(parent_root, "first_child").text = "FIRST"
second_child = etree.SubElements(parent_root, "second_child").text = "SECOND"
third_child = etree.SubElements(parent_root, "third_child").text = "THIRD"
这将创建一个包含一个父节点和三个子节点的 xml 文件。
现在我有另一个名为 editXML.py 的文件,它根据我从命令行 运行 时传入的参数替换子项的文本。
from generateXML import generate_tree
def generate_new_tree():
#code to replace filler names
当我从命令行 运行 "python editXML Tim Tom Tony" 时,我想用 "Tim" 替换 "FIRST",用 "Tom" 替换 "SECOND" , 和 "THIRD" 与托尼。
我的问题本质上是如何从 editXML.py 中的 generateXML.py 访问变量 first_child、second_child 和 third_child。 我试过了
from generateXML import generate_tree
但我似乎无法访问那样的变量。任何帮助在这里都会有所帮助
更改以下内容:
def generate_tree():
...
return parent_root
from generateXML import generate_tree
def generate_new_tree():
pList = ['Tim', 'Tom','Tony']
root = generate_tree()
for i, child in enumerrate(root):
child.text = pList[i]
for child in root:
print(child.text)