Python 如何使用lxml将.xml文件作为元素树从磁盘加载?
我的驱动器上有一系列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
- 作为元素树加载到lxml中,并使用xpath进行解析
- 以元素树的形式加载另一个XML文件,并使用xpath进行解析,以找到要将信息附加到的正确位置
- 我从一系列XML文件中解析的信息应该设置为变量,这样我就可以在返回到大的.XML文件之前对结果运行一些逻辑
获取
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