Questão FC331135
Considere o seguinte trecho de código Python que faz uma chamada a um serviço web e processa a resposta XML. import requests import xml.etree.ElementTree as ET def get_student_name
Linguagens de Programação
FGV · 2024
Considere o seguinte trecho de código Python que faz uma chamada a um serviço web e processa a resposta XML.
import requests
import xml.etree.ElementTree as ET
def get_student_name():
url = "http://example.com/studentService"
headers = {'Accept': 'application/xml'}
response = requests.get(url, headers=headers)
if response.status_code != 200:
raise Exception("Failed : HTTP error code : "
+ str(response.status_code))
root = ET.fromstring(response.content)
names = root.findall('.//nomeAluno')
name = names[1].text
namesResp = root.findall('.//nomeResp')
nameResp = namesResp[1].text
if name == "Fulano de Tal":
print("Nome: " + nameResp)
elif name == "Beltrano da Silva":
print("Nome: " + name)
else:
print("Aluno não reconhecido")
try:
get_student_name()
except Exception as e:
print(e)
Suponha que a resposta XML do serviço web seja a seguinte:
<alunos>
<aluno>
<matricula>12345</matricula>
<nomeAluno>Fulano de Tal</nomeAluno>
<emailAluno>fulano.tal@example.com</emailAluno>
<nomeResp>Ciclano de Tal</nomeResp>
</aluno>
<aluno>
<matricula>12346</matricula>
<nomeAluno>Beltrano da Silva</nomeAluno>
<emailAluno>beltrano.silva@example.com</emailAluno>
<nomeResp>Antonio da Silva</nomeResp>
</aluno>
</alunos>
O valor impresso pelo programa será:
- Nome: Ciclano de Tal
- Nome: Fulano de Tal
- Nome: Beltrano da Silva
- Nome: Antonio da Silva
- Aluno não reconhecido
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
O código faz o parse do XML com ET.fromstring e usa root.findall('.//nomeAluno') para obter uma lista de elementos nomeAluno. Como listas em Python são indexadas a partir de 0, a expressão names[1] seleciona o segundo nome presente no XML — neste caso, Beltrano da Silva. De forma análoga, namesResp[1] obtém o segundo responsável.
Em seguida, a condicional examina apenas a variável name (que contém o segundo nome). Quando essa variável é igual a Beltrano da Silva, o código executa print("Nome: " + name), ou seja, imprime exatamente Nome: Beltrano da Silva.
Portanto, considerando a seleção por índice e a lógica do print, a saída será: Nome: Beltrano da Silva.
Conteúdo do catálogo FC Concursos · Atualizado em