John Davidson

php - XML file with different elements

0 comments
Message:


Hello i have this xml file


<are:Ares_odpovedi xmlns:are="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1" xmlns:dtt="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_datatypes/v_1.0.4" xmlns:udt="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/uvis_datatypes/v_1.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" odpoved_datum_cas="2022-06-28T13:59:37" odpoved_pocet="1" odpoved_typ="Standard" vystup_format="XML" xslt="klient" validation_XSLT="/ares/xml_doc/schemas/ares/ares_answer/v_1.0.0/ares_answer.xsl" xsi:schemaLocation="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1 http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1/ares_answer_v_1.0.1.xsd" Id="ares">
<are:Odpoved>
<are:Pocet_zaznamu>1</are:Pocet_zaznamu>
<are:Typ_vyhledani>FREE</are:Typ_vyhledani>
<are:Zaznam>
<are:Shoda_ICO>
<dtt:Kod>9</dtt:Kod>
</are:Shoda_ICO>
<are:Vyhledano_dle>ICO</are:Vyhledano_dle>
<are:Typ_registru>
<dtt:Kod>2</dtt:Kod>
<dtt:Text>OR</dtt:Text>
</are:Typ_registru>
<are:Datum_vzniku>2010-11-18</are:Datum_vzniku>
<are:Datum_platnosti>2022-06-28</are:Datum_platnosti>
<are:Pravni_forma>
<dtt:Kod_PF>121</dtt:Kod_PF>
</are:Pravni_forma>
<are:Obchodni_firma>Dermacol, a.s.</are:Obchodni_firma>
<are:ICO>24766208</are:ICO>
<are:Identifikace>
<are:Adresa_ARES>
<dtt:ID_adresy>212020195</dtt:ID_adresy>
<dtt:Kod_statu>203</dtt:Kod_statu>
<dtt:Nazev_okresu>Hlavní město Praha</dtt:Nazev_okresu>
<dtt:Nazev_obce>Praha</dtt:Nazev_obce>
<dtt:Nazev_casti_obce>Ruzyně</dtt:Nazev_casti_obce>
<dtt:Nazev_mestske_casti>Praha 6</dtt:Nazev_mestske_casti>
<dtt:Nazev_ulice>Výtvarná</dtt:Nazev_ulice>
<dtt:Cislo_domovni>1023</dtt:Cislo_domovni>
<dtt:Typ_cislo_domovni>1</dtt:Typ_cislo_domovni>
<dtt:Cislo_orientacni>4</dtt:Cislo_orientacni>
<dtt:PSC>16100</dtt:PSC>
<dtt:Adresa_UIR>
<udt:Kod_oblasti>19</udt:Kod_oblasti>
<udt:Kod_kraje>19</udt:Kod_kraje>
<udt:Kod_okresu>3100</udt:Kod_okresu>
<udt:Kod_obce>554782</udt:Kod_obce>
<udt:Kod_pobvod>60</udt:Kod_pobvod>
<udt:Kod_nobvod>60</udt:Kod_nobvod>
<udt:Kod_casti_obce>400394</udt:Kod_casti_obce>
<udt:Kod_mestske_casti>500178</udt:Kod_mestske_casti>
<udt:PSC>16100</udt:PSC>
<udt:Kod_ulice>507130</udt:Kod_ulice>
<udt:Cislo_domovni>1023</udt:Cislo_domovni>
<udt:Typ_cislo_domovni>1</udt:Typ_cislo_domovni>
<udt:Cislo_orientacni>4</udt:Cislo_orientacni>
<udt:Kod_adresy>22714359</udt:Kod_adresy>
<udt:Kod_objektu>22016511</udt:Kod_objektu>
</dtt:Adresa_UIR>
</are:Adresa_ARES>
</are:Identifikace>
<are:Kod_FU>6</are:Kod_FU>
<are:Priznaky_subjektu>NAAANANNNNANNNNNNNNNNNNNANNNNN</are:Priznaky_subjektu>
</are:Zaznam>
</are:Odpoved>
</are:Ares_odpovedi>

and i need to get data from element <are:ICO> with php, i tried this, but that shows me error, because of that "are:" i think, it shows me this error



"Parse error: syntax error, unexpected token ":" in
C:\xampp\htdocs\xml\data.php on line 4"



<?php
$xml = new SimpleXMLElement("https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=24766208", LIBXML_NOCDATA, true);
foreach ($xml->Odpoved as $result) {
$ico = $result->are:ICO;
}
echo $ico;
?>


My Answer:
To access elements with a namespace prefix in SimpleXMLElement, you need to use the `children()` method. Here is the updated code to get the data from the `` element:

php
$xml = new SimpleXMLElement("https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=24766208", LIBXML_NOCDATA, true);
$namespaces = $xml->getNamespaces(true);
$are = $xml->children($namespaces['are']);

foreach ($are->Odpoved as $result) {
$ico = $result->children($namespaces['are'])->ICO;
echo $ico;
}
?>


This code will correctly access the `` element in the XML file and output its value.

Rate this post

5 of 5 based on 7194 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us