首页 > 解决方案 > 如何解析在 python 中要求凭据的 XML 文件

问题描述

有人可以帮忙吗,我想用我的代码解析一个要求身份验证(用户、密码)的 XML 文件。有人可以帮助我在我的代码中使用或编辑什么,以便我的代码可以解析 svn https 链接吗?

import urllib.request as url
import xml.etree.ElementTree as ET

xmlfile=url.urlopen(r'file:///D:/Python/user.html')

def fileparse(xmlfile):
   tree=ET.parse(xmlfile)
   root=tree.getroot()
   #print(root.tag)

   users={root.get("name"):[]}

   for item in root.findall("client"):
      users[root.get("name")].append(item.get("name"))
   return users


k1=input("user or client, please mention:")
if k1=='user':
   k10=input("Enter the user id you want to search for:")
   d1=fileparse(xmlfile)

   for k,v in d1.items():
      if k==k10:
         print(k,v)
elif k1=='client':
   c10=input("Enter the client name you want to search for:")
   d1=fileparse(xmlfile)

   for k,v in d1.items():
      if c10 in v:
         print(k)
else:

   print("sorry please check your input values")

标签: pythonpython-3.xxmlpython-2.7

解决方案


我认为您的代码中存在缩进错误。

users 和 for 循环应该存在于要执行的函数中。

import urllib.request as url
import xml.etree.ElementTree as ET

xmlfile = url.urlopen(r'file:///D:/Python/user.html').read()


def fileparse(xmlfile):
    tree = ET.parse(xmlfile)
    root = tree.getroot()
    # print(root.tag)

    users = {root.get("name"): []}

    for item in root.findall("client"):
        users[root.get("name")].append(item.get("name"))
        return users

print(fileparse(xmlfile))

推荐阅读