다음 XML 문서에서 제목과 설명을 구문 분석하려고 시도했습니다. 네임 스페이스를 다루는 것에 대한 많은 정보를 찾았지만 네임 스페이스가있는 다른 이름의 자식 인 네임 스페이스를 사용하는 무언가의 내용을 가져 오는 상황을 처리하는 방법을 알아낼 수 없습니다. 어떤 도움이 굉장 할 것입니다!PHP에서 XML 구문 분석의 두 가지 수준의 네임 스페이스
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2013-10-04T23:19:36Z</responseDate>
<request verb="ListRecords">https://digital.grinnell.edu/drupal/oai2</request>
<ListRecords>
<record>
<header>
<identifier>oai:digital.grinnell.edu:grinnell_166</identifier>
<datestamp>2013-07-02T20:59:30Z</datestamp>
</header>
<metadata>
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">
Grinnell College Young Innovator for Social Justice Prize Award Ceremony, 2011
</dc:title>
<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">
Young Innovator for Social Justice Prize Award Ceremony, 2011
</dc:title>
<dc:type xmlns:dc="http://purl.org/dc/elements/1.1/">Video</dc:type>
<dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">
An edited recording of the award ceremony for the first Grinnell College Young Innovator for Social Justice Prize.
</dc:description>
나는이 사용할 노력 해왔다 코드 : 기본적으로 내가 뭘하려고 봤는데 중첩 된 foreach는 루프를 사용하여의 아이들 [ 'oai_dc']의 자식을 얻을 수있다.
<?php
$feed = file_get_contents("https://digital.grinnell.edu/drupal/oai2?verb=ListRecords&metadataPrefix=oai_dc&from=2013-06-28&set=islandora_genericCollection");
$xml = new SimpleXmlElement($feed);
foreach ($xml->ListRecords->record as $entry){
echo $entry->header->identifier;
echo "<br>";
echo $entry->header->datestamp;
echo "<br>";
//Use that namespace
$dc = $entry->children($namespaces['oai_dc']);
foreach ($dc as $dcElement){
$childern = $dcElement->children($namespaces['dc'])->title;
echo $children;
echo "inner loop";
echo $children->title;
echo "<br>";
echo $dcElement->description;
}
}
>
다음 샘플 출력됩니다(다시 위의 XML 인 경우에만 전체 XML이 너무 긴 부분) :
OAI : digital.grinnell.edu : grinnell_166 2013- 07-02T20 : 59 : 30Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3268 2013-07-02T23 : 16 : 17Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_209 2013-07-01T16 : 36 : 55Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3269 2013-07-05T23 : 16 : 18Z 내부 루프 내부 루프 OAI : digital.grinnell .EDU : grinnell_3246 2013-07-17T19 : 21 : 41Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3326 2013-07-18T13 : 22 : 46Z 내부 루프 내부 루프 OAI 디지털 .grinnell.edu : grinnell_3249 2013-07-18T13 : 30 : 02Z 내부 루프 내부 루프OAI: digital.grinnell.edu : grinnell_3324 2013-07-18T13 : 31 : 01Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3327 2013-07-18T23 : 16 : 01Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3328 2013-07-18T23 : 16 : 02Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3329 2013-07-18T23 : 16 : 02Z 내주 루프 내부 루프 oai : digital.grinnell.edu : grinnell_3300 2013-08-07T19 : 28 : 45Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3256 2013-08-07T19 : 32 : 07Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3276 2013-08-07T19 : 39 : 05Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3279 2013-08-07T19 : 42 : 51Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3281 2013-08-07T19 : 44 : 55Z 내부 루프 내부 루프 oai : digital.grinnell.듀 : grinnell_3293 2013-08-07T19 : 47 : 21Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3277 2013-08-07T19 : 50 : 29Z 내부 루프 내부 루프 OAI 디지털. grinnell.edu:grinnell_3257 2013-08-07T19 : 52 : 32Z 내부 루프 내부 루프 OAI : digital.grinnell.edu : grinnell_3289 2013-08-07T19 : 54 : 31Z 내부 루프 내부 루프
미리 감사드립니다!