sakai soap 获得某个站点课程所有学生的名字的python代码
时间: 2024-03-02 09:41:20 浏览: 125
要使用 Sakai SOAP API 获得某个站点课程所有学生的名字,你可以使用下面的 Python 代码:
```python
import requests
import xml.etree.ElementTree as ET
# 指定 Sakai SOAP API 的 URL 和站点 ID
url = 'http://your_sakai_server/sakai-axis/SakaiLogin.jws?wsdl'
site_id = 'your_site_id'
# 构建 SOAP 请求体
soap_body = f'''
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://types.axis.sakaiproject.org">
<soapenv:Header/>
<soapenv:Body>
<typ:getSiteInfo>
<typ:siteId>{site_id}</typ:siteId>
</typ:getSiteInfo>
</soapenv:Body>
</soapenv:Envelope>
'''
# 发送 SOAP 请求并解析响应
response = requests.post(url, data=soap_body)
root = ET.fromstring(response.content)
# 获取学生列表并打印出每个学生的名字
members = root.findall('.//{http://sakai.soap.axis.sakaiproject.org}member')
for member in members:
if member.attrib['type'] == 'student':
user_id = member.attrib['identifier']
user_name = member.find('{http://sakai.soap.axis.sakaiproject.org}name').text
print(user_name)
```
其中,`your_sakai_server` 是你的 Sakai 服务器的地址,`your_site_id` 是你要获取学生名字的站点 ID。你可以将这两个变量替换为你自己的值。运行这段代码后,它会输出该站点课程所有学生的名字。
阅读全文