Python 如何使用lxml将.xml文件作为元素树从磁盘加载?

Python 如何使用lxml将.xml文件作为元素树从磁盘加载?,python,xml,xpath,xml-parsing,lxml,Python,Xml,Xpath,Xml Parsing,Lxml,我的驱动器上有一系列XML文件,我希望执行以下操作: 作为元素树加载到lxml中,并使用xpath进行解析 以元素树的形式加载另一个XML文件,并使用xpath进行解析,以找到要将信息附加到的正确位置 我从一系列XML文件中解析的信息应该设置为变量,这样我就可以在返回到大的.XML文件之前对结果运行一些逻辑 我在文件类型/将XML文件正确加载为元素树时遇到了一些问题,因此lxml可以对它们进行操作。我试过几种不同的方法,但总是遇到各种各样的问题。目前的问题是: TypeError:参数“\u

我的驱动器上有一系列XML文件,我希望执行以下操作:

  • 作为元素树加载到lxml中,并使用xpath进行解析
  • 以元素树的形式加载另一个XML文件,并使用xpath进行解析,以找到要将信息附加到的正确位置
  • 我从一系列XML文件中解析的信息应该设置为变量,这样我就可以在返回到大的.XML文件之前对结果运行一些逻辑
我在文件类型/将XML文件正确加载为元素树时遇到了一些问题,因此lxml可以对它们进行操作。我试过几种不同的方法,但总是遇到各种各样的问题。目前的问题是:

TypeError:参数“\u parent”的类型不正确(应为 lxml.etree.\u元素,获取列表)


获取
bgg.xml
树的根:

rootbgg = treebgg.getroot()
并使用它将子项附加到:

child = etree.SubElement(rootbgg, "Name")

我有另一个问题…如何选择正确的元素?我不想附加到xml文件本身的根

现在需要重新设计迭代元素的方式:

gameList = treebgg.xpath("//root/BGG")

# iterate through the IDs
for game in reversed(gameList):
    url = 'https://somewhere.com/xmlapi/' + game.attrib["id"]
    page = requests.get(url)
    tree = html.fromstring(page.content)
    # TODO: get the name

    # append child info into bgg.xml
    child = etree.SubElement(game, "Name")
    child.text = name

我尝试了rootbgg=treebgg.getroot(),但我遇到了另一个问题…如何选择正确的元素?我不想附加到xml文件本身的根。嗨#在这里附加@Aro更新了一个示例代码以继续。我希望我能理解你想正确地做什么。谢谢!这解决了我的问题。
gameList = treebgg.xpath("//root/BGG")

# iterate through the IDs
for game in reversed(gameList):
    url = 'https://somewhere.com/xmlapi/' + game.attrib["id"]
    page = requests.get(url)
    tree = html.fromstring(page.content)
    # TODO: get the name

    # append child info into bgg.xml
    child = etree.SubElement(game, "Name")
    child.text = name