我需要从this URL
中检索Identificador值我尝试了几种方法,但到目前为止都没有成功。
以下是代码:
function readxml($courseid,$datayear,$dataperiod,$datasemester){
if ($dataperiod == 'a')
$datasemester='1';
$xmlUrl = 'https://clip.unl.pt/sprs?lg=pt&year=' . $datayear .
'&uo=97747&srv=rsu&p=' . $datasemester .
'&tp=' . $dataperiod .
'&md=3&rs=' . $courseid .
'&it=1030123459';
if (!function_exists('download_file_content')){
function download_file_content($xmlStr){
return implode( "",file($xmlStr));
}
}
$xmlStr=download_file_content($xmlUrl);
$xmlObj=new SimpleXMLElement(file_get_contents($xmlStr));
foreach ($xmlObj->unidade_curricular->inscritos->aluno as $aluno) {
$result=($aluno->identificador)."<br/>";
echo $result;
}
}
如果download_file_content
不在if语句中,则无法识别Warning: file_get_contents(<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <edicao_lectiva nome="Algoritmos e Estruturas de Dados"> <ano>2008</ano> <lingua>pt</lingua> <tipo_de_periodo_lectivo>s</tipo_de_periodo_lectivo> <periodo_lectivo>1</periodo_lectivo> <unidade_curricular nome="Algoritmos e Estruturas de Dados"> <codigo>8145</codigo> <unidade_organica>Faculdade de Ciências e Tecnologia</unidade_organica> <departamento>Departamento de Informática</departamento> <grupodisciplinas>Ciência e Tecnologia da Programação</grupodisciplinas> <inscritos> <aluno numero="24250"> <nome>Adriano Constantino de Sousa Strumbudakis</nome> <identificador>a.strumbudakis</identificador> <codigo& in C:\moodle25\server\moodle\local\ecoclipaluno\somefile.php on line 106
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\moodle25\server\moodle\local\ecoclipaluno\somefile.php:106 Stack trace: #0 C:\moodle25\server\moodle\local\ecoclipaluno\somefile.php(106): SimpleXMLElement->__construct('') #1 C:\moodle25\server\moodle\local\ecoclipaluno\somefile.php(137): readxml('8145', '2008', 's', '1') #2 C:\moodle25\server\moodle\local\ecoclipaluno\somefile.php(145): xpto('8145', '2008', 's', '1') #3 {main} thrown in C:\moodle25\server\moodle\local\ecoclipaluno\somefile.php on line 106
。目前,我得到的错误是:
{{1}}
我做错了什么?
我现在注意到我的帖子丢失了一些信息,因为我使用标签来说明我想要提取的值。
答案 0 :(得分:0)
像这样:
<pre>
<?php
$xml = simplexml_load_string(file_get_contents('https://clip.unl.pt/sprs?lg=pt&year=2008&uo=97747&srv=rsu&p=1&tp=s&md=3&rs=8145&it=1030123459'));
print_r($xml);
?>
</pre>
输出:
SimpleXMLElement Object
(
[@attributes] => Array
(
[nome] => Algoritmos e Estruturas de Dados
)
[ano] => 2008
[lingua] => pt
[tipo_de_periodo_lectivo] => s
[periodo_lectivo] => 1
... snipped