Problém s čítaním XML – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s čítaním XML – PHP – Fórum – Programujte.comProblém s čítaním XML – PHP – Fórum – Programujte.com

 

Anoym
~ Anonymní uživatel
3 příspěvky
8. 9. 2013   #1
-
0
-

Zdravím, už si naozaj neviem pomôcť s jedným problémom, chcem ťahať dáta z ARES-u.

Mám tento kód:

$xml = file_get_contents('http://wwwinfo.mfcr.cz/cgi-bin/ares/ares_es.cgi?jazyk=cz&maxpoc=1&ico=27074358');
$array = json_decode(json_encode((array)simplexml_load_string($xml)),1);

$z = array($array);

print_r($z);

jeho výsledok je nasledovný:

Array ( [0] => Array ( [@attributes] => Array ( [vystup_format] => XML [odpoved_typ] => es [Id] => ares [odpoved_datum_cas] => 2013-09-08T01:03:19 ) ) )

Ale v XML, ktoré chcem zobraziť je omnoho viac dát, ako vo výsledku, možné si to pozrieť aj priamo na URL:

http://wwwinfo.mfcr.cz/cgi-bin/ares/ares_es.cgi?jazyk=cz&maxpoc=1&ico=27074358

ako sa dostanem k dátam ako napr. IČO,Názov,Adresa...

Fakt som už zúfalý a neviem ako ďalej, ďakujem za váš čas a pomoc.

Anonym

Nahlásit jako SPAM
IP: 95.105.210.–
Zdenda
~ Anonymní uživatel
257 příspěvků
8. 9. 2013   #2
-
0
-

#1 Anoym

Problém asi způsobují namespace v xml dokumentu. Ale nechápu tu konverzi xml do json, když už mám xml, tak s ním pracuji a není třeba dělat takové šaškárny. 

Zpracování xml pomocí SimpleXMLElement:

<?php
$xml = new SimpleXMLElement(
    'http://wwwinfo.mfcr.cz/cgi-bin/ares/ares_es.cgi?jazyk=cz&maxpoc=1&ico=27074358',
    0,
    true
);

foreach ($xml->xpath('/are:Ares_odpovedi/are:Odpoved/dtt:V/dtt:S') as $dttS) {
    foreach ($dttS->children('dtt', true) as $entry) {
        echo "{$entry->getName()} = {$entry}<br />";
    }
}
Nahlásit jako SPAM
IP: 84.16.127.–
Anoym
~ Anonymní uživatel
3 příspěvky
8. 9. 2013   #3
-
0
-

#2 Zdenda

Ďakujem za odpoveď, script je funkčný, ešte by som sa rád spýtal, či je to možné zobraziť napr. pomocou Array osobitne. 

Príklad:

echo $data['ojm'];

Ďakujem veľmi pekne za pomoc, veľmi mi to pomohlo.

Nahlásit jako SPAM
IP: 95.105.210.–
Zdenda
~ Anonymní uživatel
257 příspěvků
8. 9. 2013   #4
-
0
-

#3 Anoym
Stačí oddělit vrstvy. Aplikaci nezajímá a ani by neměla vědět, odkud a jak se načítají data. Aplikace bude pracovat např. s tím polem. Takže bych si udělal nějakou třídu, která načte data (bude obsahovat předchozí kód) a místo zobrazení uloží hodnoty do pole a jako návratovou hodnotu bude mít to pole. Vy pak pracujete jen s tím výsledkem.

<?php
$entries = array();
foreach (...) {
    $e = array();
    foreach (...) {
       $e[$entry->getName()] = $e->__toString();
    }
    $entries[] = $e;
}
return $entries;

Když správně oddělíte vrstvy, tak je pak snadné testování a rozšiřování aplikace - např. změna zdroje data (třeba nebudete načítat xml, ale json z jiného webu). Všechno je to o závislostech.

Nahlásit jako SPAM
IP: 84.16.127.–
Anonym
~ Anonymní uživatel
454 příspěvků
8. 9. 2013   #5
-
0
-

#4 Zdenda

Ďakujem veľmi pekne za pomoc, vážim si to a naozaj nechcem byť otravný, s tým, že sa stále pýtam.

Ale v skutku by som rád dosiahol jednoduchého výpisu bez tried apod.

a teda nejaká premenná s array

a ja si už len vypíšem potrebné cez echo. Ako napríklad:

echo $premenna['ico'];
echo $premenna['pf'];
...

Ďakujem za Váš čas, pokiaľ budete ochotný mi poradiť, ako sa vysporiadať s touto situáciou.

Nahlásit jako SPAM
IP: 95.105.210.–
peter
~ Anonymní uživatel
4016 příspěvků
9. 9. 2013   #6
-
0
-
Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

Podobná vlákna

Problém s velikostí xml — založil stoker303

Mensi problem s xml — založil Anonymní uživatel

Problém se zápisem Xml v C# — založil Petr.Hribal

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý