gpt4 book ai didi

php - 使用 SimpleXML 解析 OAI PMH 文件

转载 作者:搜寻专家 更新时间:2023-10-31 20:48:53 25 4
gpt4 key购买 nike

我正在尝试解析此文件:http://mdc.cbuc.cat/cgi-bin/oai.exe?verb=ListRecords&metadataPrefix=oai_dc&set=afcecemc&from=2011-06-21&until=2011-06-21使用 SimpleXML。

我可以获得所有元素,但标签内的元素除外。它说标签是空的。这是我的代码。

function getXMLfile($URL) {
$chDyn = curl_init();
curl_setopt ($chDyn, CURLOPT_URL, $URL);
curl_setopt($chDyn, CURLOPT_RETURNTRANSFER, 1);
$xml = curl_exec($chDyn);
curl_close($chDyn);

try {
$xmlObj = new SimpleXMLElement($xml);
}
catch (Exception $e) { echo $e; }

return $xmlObj;
}


$cdmURL = "http://mdc.cbuc.cat/cgi-bin/oai.exe?verb=ListRecords&metadataPrefix=oai_dc&set=afcecemc";

$xmlObj = getXMLfile($cdmURL);
$xmlNode = $xmlObj->ListRecords;

foreach ($xmlNode->record as $rNode) {
var_dump($rNode->children());
}

但是输出是这样的:

[...]
["metadata"]=>
object(SimpleXMLElement)#8 (0) {
}

这个元素不为空!我知道该解决方案与使用“命名空间”有某种关系,但我不知道如何让它发挥作用。

如有任何帮助,我们将不胜感激!谢谢。

最佳答案

要使用自己的命名空间访问子项,您必须告诉 SimpleXMLElement 您不希望子项使用默认语言。参见 SimpleXMLElement::children .

您链接的文档使用了多个 namespace ,因此如果您是新手,可能会感到有些困惑。

以下是一些示例代码,它扩展了您的代码(并简化了一些加载,但我想您已经理解)以访问第一个记录元素内的子元素(我打破了循环):

$url = 'http://mdc.cbuc.cat/cgi-bin/oai.exe?verb=ListRecords&metadataPrefix=oai_dc&set=afcecemc&from=2011-06-21&until=2011-06-21';

$xmlObj = simplexml_load_file($url);

$xmlNode = $xmlObj->ListRecords;

foreach ($xmlNode->record as $rNode) {
var_dump($rNode->children());
var_dump($rNode->metadata->children('oai_dc', 1));
var_dump($rNode->metadata->children('oai_dc', 1)->dc->children('dc', 1));
break;
}

这给出了以下输出,我猜这就是您正在寻找的:

object(SimpleXMLElement)#7 (2) {
["header"]=>
object(SimpleXMLElement)#9 (3) {
["identifier"]=>
string(29) "oai:mdc.cbuc.cat:afcecemc/521"
["datestamp"]=>
string(10) "2011-06-21"
["setSpec"]=>
string(8) "afcecemc"
}
["metadata"]=>
object(SimpleXMLElement)#10 (0) {
}
}
object(SimpleXMLElement)#10 (1) {
["dc"]=>
object(SimpleXMLElement)#8 (0) {
}
}
object(SimpleXMLElement)#7 (12) {
["title"]=>
string(12) "Puig d'Assas"
["creator"]=>
string(26) "Gallardo i Garriga, Antoni"
["date"]=>
string(19) "[Entre 1912 i 1928]"
["relation"]=>
array(2) {
[0]=>
string(72) "Paper; gelatina i plata; positiu; blanc i negre; horitzontal; 12 x 17 cm"
[1]=>
string(27) "Estudi de la Masia Catalana"
}
["subject"]=>
string(9) "Muntanyes"
["coverage"]=>
string(32) "Puig d'Assas ; Osona ; Catalunya"
["description"]=>
array(2) {
[0]=>
string(2) "Bo"
[1]=>
string(163) "Títol atorgat pel catalogador. Informació extreta dels àlbums de l'EMC: Situació: Puig d'Assas. Facilitada per: Antoni Gallardo i Garriga. Facilitada en: 1928."
}
["publisher"]=>
string(33) "Centre Excursionista de Catalunya"
["source"]=>
string(29) "Memòria Digital de Catalunya"
["type"]=>
string(5) "Image"
["rights"]=>
string(49) "http://creativecommons.org/licenses/by-nc-nd/3.0/"
["identifier"]=>
string(35) "http://mdc.cbuc.cat/u?/afcecemc,521"
}

关于php - 使用 SimpleXML 解析 OAI PMH 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com