如何使用python中的请求在xml文件中设置/更新值

时间:2018-02-06 08:51:10

标签: python xml python-requests

我的xml文件位于本地网络:https://192.168.43.109/DevMgmt/NetAppsDyn.xml

以下是我要更新的上述xml的部分内容:

    <nadyn:ProxyConfig>
    <dd:ResourceURI/>
    <dd:Port/>
    <dd:ProxySupport>off</dd:ProxySupport>
    </nadyn:ProxyConfig>

我想设置“资源管理”&#39;和&#39;港口&#39;上面xml中的字段: 我使用下面的代码:

     import requests
     data = {
              'ProxySupport':'on'
              'ResourceURI':'web-proxy.xxx.yy.com',
              'Port':8080
            }

    URL = 'https://192.168.75.165/DevMgmt/NetAppsDyn.xml'

    # content Type
    head = {'Content-Type': 'text/xml'}
    # sending get request
    gr= requests.get(url=URL)
    print gr

    # sending put request
    r = requests.put(url=URL, data=data,headers=head)
    print r.status_code
    # extracting response text
    output_xml = r.text
    print("The op xml is:%s" % output_xml)

问题:使用put请求不会在xml中更新字段。我能够看到get(request)的响应,但是对于put请求,它会抛出errror代码:301,资源已被永久移动。

1 个答案:

答案 0 :(得分:0)

我已经更新了要在输入中使用xml标记发送的数据格式,如下所示,现在我可以更新这些值。

data= ''' 
<nadyn:NetAppsDyn > 
  <nadyn:ProxyConfig> 
   <dd:ResourceURI>web-proxy.xx.com</dd:ResourceURI> 
   <dd:Port>8080</dd:Port> 
   <dd:UserName></dd:UserName> 
   <dd:ProxySupport>on</dd:ProxySupport> 
  </nadyn:ProxyConfig> 
</nadyn:NetAppsDyn>'''