如何从URL生成本地XML文件? 我需要能够从远程XML文件中选择某些值,并将thme放入本地文件中。目前,我只有摘要。
from xml.dom import minidom
from urllib.request import urlopen
import requests
url = 'http://url.php'
private_list = [16735,7456,18114]
xmldoc = minidom.parse(urlopen(url))
public_list = xmldoc.getElementsByTagName('server')
for public_server in public_list:
for private_server in private_list:
if (public_server.attributes['id'].value) == str(private_server):
print("Found one!")
可悲的是,我可以从公开列表中获取正确数量的元素,但是我不确定如何获取这些元素并构建这些元素的本地副本。
有人可以协助吗?
编辑:示例 XML示例如下所示:
<settings>
<servers>
<server url="192.168.1.100" name="CentOS" id="12" host="Kirk.corporate.lan"/>
<server url="10.0.0.95" name="Ubunutu" id="4" url2="192.168.1.50" host="Spock.corporate.lan"/>
<server url="10.0.1.95" id="30" host="scotty.corporate.lan"/>
</servers>
</settings>
在此示例中,我的列表仅包含ID4。因此,我只想获取ID = 4的那个子元素。我可以发现上面的代码不知道如何将整个元素都放入并推入新文件。
看起来像使用xml.etree.ElementTree
import xml.etree.ElementTree as ET
settings = ET.Element('settings')
servers = ET.SubElement(settings, 'servers')
那将建立基础,但就我所能成功的程度而言。
编辑2: 还有一点
from lxml import etree
root = etree.Element('settings')
main = etree.SubElement(root,'servers')
main = etree.SubElement(main, "server", url = "192.168.1.100", name="CentOS", id="12", host="Kirk.corporate.lan")