Python put<;元素>;将xml中的值转换为数组

Python put<;元素>;将xml中的值转换为数组,python,django,xml,xquery,Python,Django,Xml,Xquery,我有一个xquery,它返回这个xml示例 <root> <elem> xd </elem> <elem> lol </elem> <elem> hihi </elem> </root> 除息的 英雄联盟 嗨 我该如何设置这些值​​数组中元素的位置? 示例:x=[xd,lol,hihi] 任何人都可以提供帮助?您可以使用Python的内置模块xml.etree.Element

我有一个xquery,它返回这个xml示例

<root>
   <elem> xd </elem>
   <elem> lol </elem>
   <elem> hihi </elem>
</root>


除息的
英雄联盟
嗨
我该如何设置这些值​​数组中元素的位置? 示例:x=[xd,lol,hihi]
任何人都可以提供帮助?

您可以使用Python的内置模块
xml.etree.ElementTree
来实现这一点。它不会直接将XML结构转换为所需的输出,而是提供了一种通过给定XML结构进行解析的方法,我们可以进一步使用该方法获得输出。在继续之前,我必须警告您,此模块是安全的,因此,如果您接受不受信任或未经验证的数据,请自行承担风险

以下是您可以继续操作的方法:

import xml.etree.ElementTree as ET

xml_string = """
<root>
   <elem> xd </elem>
   <elem> lol </elem>
   <elem> hihi </elem>
</root>
"""

# `ET.fromstring` reads an XML string and returns the root of the structure
root = ET.fromstring(xml_string)

# Iterate through XML nodes and extract text
x = [node.text.strip() for node in root]

print(x)
在代码中,我们首先导入模块。然后,使用
ElementTree
fromstring()。然后,我们使用这个根,遍历这个节点中的节点并提取文本。文本可能包含一些空格,因此,我们使用字符串的
strip()
方法删除它们

上述方法将XML数据视为字符串。如果要从文件中读取数据,可以将文件的全部内容作为字符串读取并将其传递给
fromstring()
,也可以直接将文件名传递给
parse()
方法,如下所示:

root = ET.parse("my_xml_file.xml")

但是当传递到字符串时,是否会丢失以前所做的查询?我已经有一个变量返回这个xml(res1)@tradepulation是的,您可以传递
res1
,而不是
xml\u string
。您基本上需要传递任何包含XML的字符串
root = ET.parse("my_xml_file.xml")