Python在另一个文件中编辑etree子元素文本

时间:2017-06-01 20:20:59

标签: python lxml xml.etree

首先,我对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"从命令行,我想替换" FIRST"与" Tim"," SECOND"与#34; Tom"和" THIRD"和托尼一起

我的问题基本上是如何从editXML.py中的generateXML.py访问变量first_child,second_child和third_child。 我试过了

from generateXML import generate_tree 

但我似乎无法访问这样的变量。任何帮助在这里都会有所帮助

1 个答案:

答案 0 :(得分:0)

更改以下内容:

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)