Hallo miteinander,
Ich habe das folgenden XML-Segement:
Mit dem folgenden PHP-Code kann ich bspw. den Datenfeld (datafield) mit dem Tag "450" auslesen. Wie aber komme ich bspw. an den Wert für das "subfield" mit dem Tag "code="0"" unter dem Datenfeld "tag=550"? Jemand eine Idee bitte?
Danke für eure Hilfe
Ich habe das folgenden XML-Segement:
Code:
<?xml version="1.0" encoding="UTF-8"?> <record xmlns="http://www.loc.gov/MARC21/slim" type="Authority"> <leader>00000nz a2200000nc 4500</leader> <controlfield tag="001">040432386</controlfield> <controlfield tag="003">DE-101</controlfield> <controlfield tag="005">20180124053847.0</controlfield> <controlfield tag="008">880701n||azznnbabn | ana |c</controlfield> <datafield tag="024" ind1="7" ind2=" "> <subfield code="a">http://d-nb.info/gnd/4043238-5</subfield> <subfield code="2">uri</subfield> </datafield> <datafield tag="035" ind1=" " ind2=" "> <subfield code="a">(DE-101)040432386</subfield> </datafield> <datafield tag="035" ind1=" " ind2=" "> <subfield code="a">(DE-588)4043238-5</subfield> </datafield> <datafield tag="035" ind1=" " ind2=" "> <subfield code="z">(DE-588c)4043238-5</subfield> <subfield code="9">v:zg</subfield> </datafield> <datafield tag="040" ind1=" " ind2=" "> <subfield code="a">DE-101</subfield> <subfield code="9">r:DE-101</subfield> <subfield code="b">ger</subfield> <subfield code="d">9999</subfield> </datafield> <datafield tag="042" ind1=" " ind2=" "> <subfield code="a">gnd1</subfield> </datafield> <datafield tag="065" ind1=" " ind2=" "> <subfield code="a">13.3</subfield> <subfield code="2">sswd</subfield> </datafield> <datafield tag="075" ind1=" " ind2=" "> <subfield code="b">s</subfield> <subfield code="2">gndgen</subfield> </datafield> <datafield tag="075" ind1=" " ind2=" "> <subfield code="b">saz</subfield> <subfield code="2">gndspec</subfield> </datafield> <datafield tag="079" ind1=" " ind2=" "> <subfield code="a">g</subfield> <subfield code="q">s</subfield> <subfield code="u">w</subfield> <subfield code="u">o</subfield> <subfield code="u">z</subfield> </datafield> <datafield tag="083" ind1="0" ind2="4"> <subfield code="a">751.45</subfield> <subfield code="9">d:3</subfield> <subfield code="9">t:2007-01-01</subfield> <subfield code="2">22/ger</subfield> </datafield> <datafield tag="150" ind1=" " ind2=" "> <subfield code="a">Ölmalerei</subfield> </datafield> <datafield tag="450" ind1=" " ind2=" "> <subfield code="a">Ölgemälde</subfield> </datafield> <datafield tag="550" ind1=" " ind2=" "> <subfield code="0">(DE-101)040372200</subfield> <subfield code="0">(DE-588)4037220-0</subfield> <subfield code="0">http://d-nb.info/gnd/4037220-0</subfield> <subfield code="a">Malerei</subfield> <subfield code="4">obal</subfield> <subfield code="4">http://d-nb.info/standards/elementset/gnd#broaderTermGeneral</subfield> <subfield code="w">r</subfield> <subfield code="i">Oberbegriff allgemein</subfield> </datafield> <datafield tag="670" ind1=" " ind2=" "> <subfield code="a">M</subfield> </datafield> <datafield tag="677" ind1=" " ind2=" "> <subfield code="a">Wird i.d.R. nur verwendet, wenn die Maltechnik behandelt ist.</subfield> </datafield> <datafield tag="750" ind1=" " ind2="7"> <subfield code="a">Peinture à l'huile</subfield> <subfield code="0">(FrPBN)FRBNF119329441</subfield> <subfield code="0">http://data.bnf.fr/11932944</subfield> <subfield code="2">ram</subfield> <subfield code="9">v:MACS-Mapping. Bitte keine Änderungen vornehmen.</subfield> </datafield> <datafield tag="913" ind1=" " ind2=" "> <subfield code="S">swd</subfield> <subfield code="i">s</subfield> <subfield code="a">Ölmalerei</subfield> <subfield code="0">(DE-588c)4043238-5</subfield> </datafield> </record>
PHP-Code:
<?php
header('Content-type: text/html; charset=utf-8');
error_reporting(E_ALL);
//ini_set('display_errors', '1');
$id = preg_replace("/[^0-9-]/", "", $_POST["id"]);
// URL to fetch
$url = "https://services.dnb.de/sru/authorities?version=1.1&operation=searchRetrieve&query=WOE%3D$id%20and%20COD%3Ds&recordSchema=MARC21-xml";
// Setting the HTTP Request Headers
$User_Agent = 'Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0';
$request_headers = array('Contect-Type:text/xml', 'Accept:text/xml');
$ch = curl_init($url);
// Set the url
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_USERAGENT, $User_Agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Execute
$result = curl_exec($ch); // Performs the Request, with specified curl_setopt() options (if any).
// Closing
curl_close($ch);
$xmlObj = new SimpleXMLElement($result);
foreach($xmlObj->records->record->recordData->record->datafield as $dfield)
{
if((string)$dfield["tag"] == "150")
{
$subfield = $dfield->subfield;
echo($subfield) . " ; ";
}
}
foreach($xmlObj->records->record->recordData->record->datafield as $dfield)
{
if((string)$dfield["tag"] == "450")
{
$subfield = $dfield->subfield;
echo($subfield) . " ; ";
}
}
?>
Kommentar