Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要使用python在xml中查找主体id_Python_Xml_Urllib2 - Fatal编程技术网

需要使用python在xml中查找主体id

需要使用python在xml中查找主体id,python,xml,urllib2,Python,Xml,Urllib2,使用urllib2.Request(url)和BeautifulSoup返回以下内容: <?xml version="1.0" encoding="utf-8"?> <results> <status code="ok"> </status> <principal-list> <principal account-id="1013353221" has-children="false" is-hidden="false"

使用urllib2.Request(url)和BeautifulSoup返回以下内容:

<?xml version="1.0" encoding="utf-8"?>
<results>
 <status code="ok">
 </status>
 <principal-list>
  <principal account-id="1013353221" has-children="false" is-hidden="false" is-primary="false" principal-id="1013353225" training-group-id="" type="user">
   <name>
    First Last
   </name>
   <login>
    first.last
   </login>
   <email>
    first.last@domain.com
   </email>
   <display-uid>
    first.last
   </display-uid>
  </principal>
  <principal account-id="1013353221" has-children="false" is-hidden="false" is-primary="false" principal-id="1115269931" training-group-id="" type="user">
   <name>
    First Last
   </name>
   <login>
    first.last
   </login>
   <email>
    first.last@domain.com
   </email>
   <display-uid>
    first.last
   </display-uid>
  </principal>
 </principal-list>
</results>

我想调用
username=sys.argv[1]
,让它返回
中包含的
用户名的
主体id
也许可以尝试查看,它解析html。

嗯……听起来很有趣

试着这样做:

req = urllib2.Request(url)
response = urllib2.urlopen(req)
userlist = response.read()
soup = BeautifulSoup(userlist)

username = sys.argv[1]

def get_id(username_var):
    tags = soup.findAll('login')
    for data in tags:
        if str(data.contents[0]).strip() != username_var:
            continue
        print data.parent['account-id']

get_id(username)

这将返回与提供的用户名关联的帐户ID。

WOW!我怎么没想到呢。现在看起来好多了。谢谢你的帮助。我想我现在有一个更好的问题。如果这对您有效,那么您应该单击此条目旁边的复选图标。
req = urllib2.Request(url)
response = urllib2.urlopen(req)
userlist = response.read()
soup = BeautifulSoup(userlist)

username = sys.argv[1]

def get_id(username_var):
    tags = soup.findAll('login')
    for data in tags:
        if str(data.contents[0]).strip() != username_var:
            continue
        print data.parent['account-id']

get_id(username)