Autor | Zpráva | ||
---|---|---|---|
Milkys Profil |
Dobrý podvečer,
Prosím Vás mohl by mi někdo poradit jak sloučit dva xml soubory se stejnou strukturou a zároveň je seřadit podle jednoho elementu např. elementu hits? Osobně používám na rozsekání xml xpath a na řazení sortedxpath, ale nyní jsem v koncích. Třeba bude stačit odkaz kde se to řeší. Struktura xml souborů: <items> <item typ="2" id="10362" hits="311167" /> <item typ="1" id="10362" hits="22167" /> </items> Předem děkuji. |
||
mimochodec Profil |
#2 · Zasláno: 21. 4. 2012, 09:09:43
Jestli je ta struktura jednoúrovňová, jak tady v té ukázce, tak by neměl být problém načíst to v php do dvourozměrného pole a seřadit v něm.
|
||
Milkys Profil |
Ano, struktura je jednoúrovňová. Na zpracování xml dokumentů (i na ty "hlubší") používám úspěšně simplexml.
Něco jsem našel, že to bude jako $promena[neco][jeste_neco]; Můžete mi prosím ukázat příklad - v php jsem začátečník. Je to ten příklad s šachama zde? Hledám správně? include ('SimpleDOM.php'); echo 'Seřazení elem. hits z 1. xml souboru: <br/>'; $xml = simpledom_load_file("test.xml"); $result = $xml->sortedxpath("//item",'@hits', SORT_DESC); foreach ($result as $item) { $typek = $item['typ']; $idecko = $item['id']; $hitik = $item['hits']; echo $hitik.'<br/>'; } |
||
Milkys Profil |
#4 · Zasláno: 22. 4. 2012, 13:42:21
Funkční řešení. Třeba to někomu pomůže.
<?php include ('SimpleDOM.php'); echo 'Spojení dvou xml soouborů a jejich seřazení dle hits:<br/>'; //vytvoření prvního pole ze souboru test.xml $xml = simplexml_load_file("test.xml"); $result = $xml->xpath("//item"); //vytvoření druhého pole ze souboru test2.xml $xml = simplexml_load_file("test2.xml"); //připojení nového pole za to stávající $result = array_merge ($result,$xml->xpath("//item")); $endline = "\n"; $vystup = '<?xml version="1.0" encoding="utf-8"?>'.$endline; $vystup .= '<!DOCTYPE hotels [ <!ENTITY nbsp " "> <!ENTITY amp "&"> <!ENTITY lt "<"> <!ENTITY gt ">"> <!ENTITY ndash "–"> <!ENTITY quot """> <!ENTITY times "×"> ]>'.$endline; $vystup .= '<items>'.$endline; foreach ($result as $item) { $typek = $item['typ']; $idecko = $item['id']; $hitik = $item['hits']; $vystup .= '<item'.$endline; $vystup .= 'typ="'.$typek.'"'.$endline; $vystup .= 'id="'.$idecko.'"'.$endline; $vystup .= 'hits="'.$hitik.'" />'.$endline; } $vystup .= '</items>'.$endline; $fop = fopen("spojene-soubory.xml", "w"); fwrite($fop, $vystup); fclose($fop); $xml3 = simpledom_load_file("ubytovani.xml"); $result3 = $xml3->sortedxpath("//item",'@hits', SORT_DESC); foreach ($result3 as $item3) { $typek3 = $item3['typ']; $idecko3 = $item3['id']; $hitik3 = $item3['hits']; echo $hitik3.'<br/>'; } ?> |
||
Časová prodleva: 12 let
|
0