我想知道在XML中搜索数据的最佳方法是什么,然后在找到匹配后将所有部分写入另一个文件,给定以下xml:
<root>
<title>
<control>
<id>001</id>
<gas-type>gasoline</gas-type>
<brand>honda</brand>
</control>
</title>
<title>
<control>
<id>002</id>
<gas-type>diesel</gas-type>
<brand>volvo</brand>
</control>
</title>
</root>
e.g
如果用户输入为id =&#39; 001&#39;然后获取:
中的所有数据 <title>
<control>
<id>001</id>
<gas-type>gasoline</gas-type>
<brand>honda</brand>
</control>
</title>
并将其写入新文件。
到目前为止,我找到了一种搜索ID的方法:
from xml.dom import minidom
mixml="""<root>
<title>
<control>
<id>001</id>
<gas-type>gasoline</gas-type>
<brand>honda</brand>
</control>
</title>
<title>
<control>
<id>002</id>
<gas-type>diesel</gas-type>
<brand>volvo</brand>
</control>
</title>
</root>"""
user = input('id:')
xmldoc = minidom.parseString(mixml)
itemlist = xmldoc.getElementsByTagName("id")
for i in itemlist:
if i.firstChild.nodeValue == user:
比较用户输入与id标记。
答案 0 :(得分:1)
您可以使用BeautifulSoup。
from bs4 import BeautifulSoup
soup = BeautifulSoup(open(your_file,encoding="utf8"), 'html.parser')
contentgroup = soup.find_all('control')
myresult = [item for item in contentgroup if item.id.contents[0]=='001']
结果将是:
[<control>
<id>001</id>
<gas-type>gasoline</gas-type>
<brand>honda</brand>
</control>]