Home > database >  Reading XML file with PHP, but nothing shows
Reading XML file with PHP, but nothing shows

Time:06-29

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

https://onlinephp.io/c/3adb2

  • Related