Čtení XML – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Čtení XML – PHP – Fórum – Programujte.comČtení XML – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
plasmo0
Věrný člen
27. 1. 2010   #1
-
0
-

Ahoj, dělám import zboží do eshopu z xml, ale mám problém se zpracováním v php. Část XML je následující:



<Zbozi diffgr:id="Zbozi2313" msdata:rowOrder="0" kod_zbozi="8140580143" popis="Norton 360 + myš Lochitech Wireless Mouse M505" jednotka="ks" zaruka="24" dostupnost="true" dph="20" cena="1014.5" cenaEU="1380.5" snimek="8140580143/Lochitech_Norton360.JPG" rema="1.500" kod_vyrobce="093-000901" vyrobce="SYMANTEC" kod_kategorie="SW" kategorie="Software a hry" kod_podkategorie="SW - ANTIVIR" podkategorie="Antiviry, firewally a ochrana dat" typ="3" aut_poplatek="0">

<rozsireny_text>
<b>Aplikace Norton 360™ verze 3.0 až pro 3 uživatele</b>nabízí osvědčený výkon prostřednictvím rychlého a komplexního řešení na současné úrovni pro ochranu počítače a všech vašich činností online. Je to komplexní řešení, které poskytuje oceněné zabezpečení pro ochranu před viry, spywarem, hackery, robotickými sítěmi a dalšími hrozbami. Tím pomáhá neustále chránit váš počítač a domácí síť bez matoucích výstrah zabezpečení, které narušují práci s počítačem. Nová funkce Norton Safe Web™ obsahuje technologii hodnocení webových stránek, která zjišťuje phishingové, napadené a virem infikované webové stránky a tím vás chrání před hrozbami.
Technologie ochrany identity a ochrany proti podvodům Norton Safe Web identifikují webové stránky, které nejsou bezpečné, a podezřelé prodejce, abyste mohli nakupovat a procházet web bez obav.
Aplikace Norton 360 verze 3.0 nabízí také automatické vyladění počítače, které pomáhá počítač zrychlit, a nový diagnostický nástroj vydává doporučení pro zajištění optimálního výkonu.
Zabezpečené úložiště online chrání vaše nenahraditelné soubory před ztrátou. Úložiště online o velikosti 2 GB můžete použít k uložení např. 500 skladeb (4 MB/skladbu) nebo 800 fotografií (2.5 MB/fotku).*
Aplikace Norton 360 verze 3.0 podporuje také řadu místních cílových zařízení, včetně externích pevných disků, disků Blu-ray Disc™ a HD-DVD a zařízení iPod®.

<b>Proč zvolit aplikaci Norton 360?</b>
Chrání váš počítač, činnosti online a vaši identitu 24 hodin denně, 7 dní v týdnu - Poskytuje oceněnou ochranu proti virům, spywaru, červům, phishingu, hackerům a dalším hrozbám prostřednictvím jednoho úplného a plně automatizovaného řešení.
<b>NOVINKA! </b>Poskytuje špičkové zabezpečení bez zpomalení systému - Pracuje rychle a využívá méně paměti než konkurenční aplikace, takže kvůli zabezpečení není nutno obětovat výkon.
<b>NOVINKA! </b>Blokuje robotické sítě - Automaticky zjišťuje robotické sítě a tím zabraňuje hackerům v převzetí kontroly nad vaším počítačem a v přístupu k vašim důvěrným informacím.
<b>NOVINKA! </b>Zvyšuje bezpečnost nakupování online - Upozorňuje na webové stránky, které nejsou bezpečné, a na podezřelé prodejce, takže můžete nakupovat bez obav.
Chrání vaši identitu při nakupování a používání bankovních služeb a procházení Internetu - Ověřuje pravé stránky a identifikuje podvodné stránky a tím vás chrání před phishingem.
Nabízí bezpečné přihlášení k webovým stránkám jedním klepnutím - Automaticky ukládá přihlašovací údaje a hesla, takže je možno se přihlásit k serverům jediným klepnutím. Blokuje programy zaznamenávající stisky kláves a jiné programy, které mohou krást informace.
Zabezpečuje prohlížeč proti útokům - Zabraňuje počítačovým zlodějům ve zneužití zranitelných míst ve webovém prohlížeči k zavedení škodlivého kódu do počítače.
<b>NOVINKA! </b> Poskytuje neustále aktualizovanou antivirovou ochranu - Automaticky každých 5 až 15 minut zjišťuje, zda jsou k dispozici nové definice virů, a stahuje je na pozadí. Získáte nepřetržitou ochranu bez omezení výkonu.
<b>NOVINKA! </b> Chrání důležité soubory před ztrátou - Automaticky zálohuje soubory v době nečinnosti počítače, takže zálohování nezpomaluje počítač a nebrání jeho použití. Zabezpečené úložiště online o velikosti 2 GB v ceně (s možností dokoupit další úložný prostor).
<b>NOVINKA! </b> Zkracuje dobu spuštění počítače - Vypíná nepotřebné programy zaváděné při spuštění počítače a tím zrychluje spuštění počítače.
Chrání vaši bezdrátovou síť před útočníky - Zabraňuje neoprávněným uživatelům ve využívání vaší sítě a v přístupu k vašim souborům. Upozorní uživatele při připojení k nezabezpečené bezdrátové síti.
Zlepší funkci počítače tak, že bude zase jako nový - Odstraňuje nepotřebné soubory, defragmentuje pevný disk, opravuje běžné problémy a vylaďuje počítač na špičkový výkon.
Včetně BEZPLATNÉ odborné pomoci 24/7 - Stojíme za vámi. Přístup k odborné pomoci zdarma prostřednictvím e-mailu, chatu nebo telefonu jediným klepnutím.

<b>Požadavky na systém:</b>
<b>Microsoft Windows® XP s aktualizací SP2 nebo SP3 Home Edition/Professional Edition Media Center</b>
Procesor 300 MHz nebo výkonnější
Minimálně 256 MB paměti RAM
300 MB volného místa na pevném disku
<b>Microsoft Windows® Vista® a Vista s aktualizací SP1 Starter Edition/Home Basic/Home Premium/Ultimate/Business</b>
Podporuje 32bitové a 64bitové platformy
Je nutné splnit minimální požadavky operačního systému Windows Vista
<b>Požadavky pro všechny instalace</b>
Jednotka CD-ROM nebo DVD-ROM
Monitor s rozlišením VGA (800 x 600) nebo vyšším
Aplikace Microsoft Internet Explorer® 6.0 nebo novější, Mozilla Firefox® 2.0 nebo novější (pro ochranu před phishingem).
Širokopásmové nebo vysokorychlostní připojení k Internetu (pro zálohování online).

<b>S myší Logitech® Wireless Mouse M505 </b> můžete pracovat pohodlněji na různých místech a zvládnout více. Životnost baterií až 15 měsíců zajišťuje dostatek energie pro udržení produktivity a laserové snímání poskytuje přesné a citlivé ovládání kurzoru na různých místech. Nepatrný přijímač Logitech® Unifying zůstává v notebooku. Ke stejnému bezdrátovému přijímači můžete navíc snadno přidat kompatibilní bezdrátové myši a klávesnice. Ergonomický tvar s měkkým pogumovaným úchopem přirozeně kopíruje tvar ruky pro zvýšení pohodlí a zároveň je malý, takže jej lze snadno přenášet. Pokročilé bezdrátové připojení 2,4 GHz Logitech® zaručuje rychlý přenos dat téměř bez zpoždění a výpadků.

<b>Hlavní vlastnosti:</b>

* Životnost baterií až 15 měsíců prakticky odstraňuje nutnost jejich výměny. Vypínač šetří energii. Indikátor baterie brání nepříjemným překvapením.
* Laserové snímání zajišťuje plynulé, citlivé a přesné ovládání kurzoru na površích, které optickým myším způsobují problémy, například na leštěných stolech nebo stolech s hrubou texturou.
* Nepatrný přijímač Logitech® Unifying zůstává v notebooku. Při pohybu není třeba přijímač odpojovat, takže si nemusíte dělat starosti s jeho poškozením či ztrátou. Ke stejnému bezdrátovému přijímači můžete navíc snadno přidat kompatibilní bezdrátové myši a klávesnice.
* Ergonomický tvar s měkkým pogumovaným úchopem přirozeně kopíruje tvar ruky pro zvýšení pohodlí a zároveň je malý, takže jej lze snadno přenášet.
* Pokročilé bezdrátové připojení Logitech® 2.4 GHz nabízí spolehlivost kabelu a pohodlí a volnost pohybu bezdrátové technologie + rychlý přenos dat a prakticky žádné prodlevy a výpadky.
</rozsireny_text>
</Zbozi>

Všechny prvky zboží získám pomocí XPath a třídy DomXPath. Atributy zbozi si vybrat umím, ale nevím jak vybrat obsah tagu rozsireny_text. Poradil by mi někdo? Muj soucasny kod vypadá následovné:
$dom = new DomDocument();

$dom->load('xml');
$xp = new DomXPath($dom);
$result = $xp->query('//Zbozi',$dom->documentElement);


foreach ($result as $resul){
$kod = $resul->getAttributeNode('kod_zbozi')->value;
$nakupni = $resul->getAttributeNode('cena')->value;
$prodejni = $resul->getAttributeNode('cenaEU')->value;
$jmeno = $resul->getAttributeNode('popis')->value;

}

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
Reklama
Reklama
liborb
~ Redaktor
+18
Guru
28. 1. 2010   #2
-
0
-

Zkus toto:




/Zbozi/rozsireny_text/descendant::node()

Nahlásit jako SPAM
IP: 85.207.166.–
dannyk0
Věrný člen
28. 1. 2010   #3
-
0
-



//Zbozi/rozsireny_text

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
plasmo0
Věrný člen
28. 1. 2010   #4
-
0
-

No a jak poznám ke ktrému zboží ten rozšířený text patří?

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
dannyk0
Věrný člen
28. 1. 2010   #5
-
0
-

Tak to muzes udelat pomoci 2 xpathu.
Nejdriv vyberes vsechny elementy Zbozi



//Zbozi

A v cyklu pro kazdy element vyberes ten rozsireny_text


/rozsireny_text

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
plasmo0
Věrný člen
28. 1. 2010   #6
-
0
-

Ok a včem pak budu mít ještě uložený obsah toho elemtu? :)

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
plasmo0
Věrný člen
28. 1. 2010   #7
-
0
-

Tak swe nějak strácím v tom abych další XPath použil v tom cyklu.

Mám tehle kód:

$xp = new DomXPath($dom);

$result = $xp->query('//Zbozi',$dom->documentElement);

foreach ($result as $resul){
$kod = $resul->getAttributeNode('kod_zbozi')->value;
$nakupni = $resul->getAttributeNode('cena')->value;
$prodejni = $resul->getAttributeNode('cenaEU')->value;
$jmeno = $resul->getAttributeNode('popis')->value;

$dom2 = new DomDocument();
$dom2->loadXML($resul);
$xp = new DomXPath($dom2);
$result2 = $xp->query('/rozsireny_text',$dom2->documentElement);
}


ale hází mi to tyhle chyby:
Warning: DOMDocument::loadXML() expects parameter 1 to be string, object given in /home/itobchod.net/at/atcomp_katalog.php on line 31

Catchable fatal error: Argument 2 passed to DOMXPath::query() must be an instance of DOMNode, null given in /home/itobchod.net/at/atcomp_katalog.php on line 33


Co dělám blbě a jak by to mělo vypadat?

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
liborb
~ Redaktor
+18
Guru
28. 1. 2010   #8
-
0
-

Koukám do manuálu DomXPath, query vrací DOMNodeList, cyklus foreach to rozebere na jednotlivé DOMNode .... tak by to mělo být možná takto:



foreach ($result as $resul){
$kod = $resul->getAttributeNode('kod_zbozi')->value;
$nakupni = $resul->getAttributeNode('cena')->value;
$prodejni = $resul->getAttributeNode('cenaEU')->value;
$jmeno = $resul->getAttributeNode('popis')->value;

$result2 = $xp->query('/rozsireny_text', $resul);
}


A ještě poznámka. Možná to špatně chápu, ale zkrácené zápisy / a // něco znamenají, takže bych řekl, že to má být obráceně tj. /Zbozi a //rozsireny_text :smile11: .

Nahlásit jako SPAM
IP: 85.207.166.–
plasmo0
Věrný člen
28. 1. 2010   #9
-
0
-

DObře, zkusím to. Ale ještě, když k atributům přistupuju pomocí getAttributeNode('popis')->value, jak přistoupím k obsahau mezi tagy <> a </> ?? Díky

Nahlásit jako SPAM
IP: 82.150.166.–
Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález. [br] Albert Einstein [br][br] http://plasmo.cz [br] http://bleskovaregistrace.cz [br] http://livetrading.cz
liborb
~ Redaktor
+18
Guru
29. 1. 2010   #10
-
0
-

Zkus textContent.

Nahlásit jako SPAM
IP: 85.207.166.–
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, 61 hostů

Podobná vlákna

čtení z xml — založil Asinkan

C# cteni xml do richboxu — založil silent

Čtení XML pomocí PHP — založil Riddick

 

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