I have the following XML file:
<?xml version="1.0" encoding="UTF-8"?>
<Ares_dotazy xmlns="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1" xmlns:dtt="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_datatypes/v_1.0.1" xmlns:udt="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/uvis_datatypes/v_1.0.1" dotaz_datum_cas="2011-06-16T10:04:01" dotaz_pocet="3" dotaz_typ="Standard" vystup_format="XML" validation_XSLT="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.0/ares_request.xsl" user_mail="Vas_funkcni.e-mail@vase_firma.cz" answerNamespaceRequired="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1 http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1/ares_request_v_1.0.1.xsd" Id="ares_dotaz">
<Dotaz>
<Pomocne_ID>1</Pomocne_ID>
<Typ_vyhledani>FREE</Typ_vyhledani>
<Klicove_polozky>
<ICO>27074358</ICO>
</Klicove_polozky>
<Max_pocet>10</Max_pocet>
</Dotaz>
<Dotaz>
<Pomocne_ID>2</Pomocne_ID>
<Typ_vyhledani>FREE</Typ_vyhledani>
<Klicove_polozky>
<Obchodni_firma>DOBROČINNÉ SDRUŽENÍ</Obchodni_firma>
</Klicove_polozky>
<Nazev_obce>Kroměříž</Nazev_obce>
<Datum_platnosti>2007-09-01</Datum_platnosti>
<Max_pocet>20</Max_pocet>
</Dotaz>
<Dotaz>
<Pomocne_ID>3</Pomocne_ID>
<Typ_vyhledani>OF</Typ_vyhledani>
<Klicove_polozky>
<ICO>27074358</ICO>
<Obchodni_firma>Asseco</Obchodni_firma>
</Klicove_polozky>
<Datum_platnosti>2010-08-08</Datum_platnosti>
<Typ_registru>
<dtt:Kod>2</dtt:Kod>
</Typ_registru>
</Dotaz>
</Ares_dotazy>
and i need to get data from element "ICO" and "Obchodni_fiema" with PHP and my code doesn´t shows anything, it just shows commas, that i have in echo, but i need to get number "27074358" which is in the element "ICO"
<?php
$xmldata = simplexml_load_file("data.xml") or die("Failed to load");
foreach($xmldata->children() as $data) {
echo $data->ICO . ", ";
echo $data->Obchodni_firma . ", ";
}
?>
CodePudding user response:
With:
$response = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Ares_dotazy xmlns="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1" xmlns:dtt="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_datatypes/v_1.0.1" xmlns:udt="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/uvis_datatypes/v_1.0.1" dotaz_datum_cas="2011-06-16T10:04:01" dotaz_pocet="3" dotaz_typ="Standard" vystup_format="XML" validation_XSLT="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.0/ares_request.xsl" user_mail="Vas_funkcni.e-mail@vase_firma.cz" answerNamespaceRequired="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1 http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1/ares_request_v_1.0.1.xsd" Id="ares_dotaz">
<Dotaz>
<Pomocne_ID>1</Pomocne_ID>
<Typ_vyhledani>FREE</Typ_vyhledani>
<Klicove_polozky>
<ICO>27074358</ICO>
</Klicove_polozky>
<Max_pocet>10</Max_pocet>
</Dotaz>
<Dotaz>
<Pomocne_ID>2</Pomocne_ID>
<Typ_vyhledani>FREE</Typ_vyhledani>
<Klicove_polozky>
<Obchodni_firma>DOBROČINNÉ SDRUŽENÍ</Obchodni_firma>
</Klicove_polozky>
<Nazev_obce>Kroměříž</Nazev_obce>
<Datum_platnosti>2007-09-01</Datum_platnosti>
<Max_pocet>20</Max_pocet>
</Dotaz>
<Dotaz>
<Pomocne_ID>3</Pomocne_ID>
<Typ_vyhledani>OF</Typ_vyhledani>
<Klicove_polozky>
<ICO>27074358</ICO>
<Obchodni_firma>Asseco</Obchodni_firma>
</Klicove_polozky>
<Datum_platnosti>2010-08-08</Datum_platnosti>
<Typ_registru>
<dtt:Kod>2</dtt:Kod>
</Typ_registru>
</Dotaz>
</Ares_dotazy>
XML;
Just loop over:
$xml = new SimpleXMLElement($response);
foreach ($xml->Dotaz as $result) {
echo $result->Klicove_polozky->ICO, ' / ', $result->Klicove_polozky->Obchodni_firma, PHP_EOL;
}
Results:
27074358 /
/ DOBROČINNÉ SDRUŽENÍ
27074358 / Asseco