使用Python从另一个文件生成一个XML文件

时间:2019-03-05 19:51:35

标签: python xml xml-parsing

如何从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")

0 个答案:

没有答案