Autor Zpráva
tomiksk
Profil
Čuss na internete som si našiel script a trochu som si ho upravil :
<?
$dom = new DOMDocument("1.0", "utf-8");
$elements = $dom->CreateElement("data");
$element = $dom->CreateElement("Subory");
$element->setAttribute("NazevSouboru", false);
$Atribname = $element->getAttributeNode("NazevSouboru");
$Atribname->value = $filename;
$elements->appendChild($element);
$dom->appendChild($elements);
$dom->save("patchlist.xml");
?>
a XML vyzera takto:
<?xml version="1.0" encoding="utf-8"?>
<data><Subory NazevSouboru="patch" /></data>
ale problem je v tom že v $filename su ešte subory: auto, all, make, patch ... a ono to stale vypisuje jen ten poslednej...
Potrebujem nejak ten script upravit aby sa do XML vložily všetky a vyzeralo to takto:

<?xml version="1.0" encoding="utf-8"?>
<data><Subory NazevSouboru="auto" /><Subory NazevSouboru="all" /><Subory NazevSouboru="make" /><Subory NazevSouboru="patch" /></data>
Joker
Profil
tomiksk:
Potrebujem nejak ten script upravit aby sa do XML vložily všetky
Tak je potřeba ty prvky vytvářet v nějakém cyklu.
tomiksk
Profil
foreach (glob("patch/*") as $filename) {
$dom = new DOMDocument("1.0", "utf-8");
$elements = $dom->CreateElement("data");
$element = $dom->CreateElement("Subory");
$element->setAttribute("NazevSouboru", false);
$Atribname = $element->getAttributeNode("NazevSouboru");
$Atribname->value = $filename;
$elements->appendChild($element);
$dom->appendChild($elements);
$dom->save("patchlist.xml");
}

<-- Celý script ono to zistí ake su subory v zložke patch a ptm ich zapíše do XML....


A když dám jen echo $filename; tak to v pohode vypiše všetky subory
Joker
Profil
tomiksk:
Aha, takže: Vytvoření dokumentu a elementu data musí být před cyklem, připojování elementů soubory uvnitř cyklu a připojení elementu data a uložení dokumentu za cyklem.

Mimotematická poznámka, ten styl pojmenovávání není úplně šťastný, jednak v XML se element jmenuje <Subory>, ale přitom drží informace o jednom souboru, jednak pojmenovávat proměnné stylem $element a $elements je potenciální zdroj chyb.
tomiksk
Profil
Takže script by mal vyzerat nejak takto :

$dom = new DOMDocument("1.0", "utf-8");
$data = $dom->CreateElement("data");
foreach (glob("patch/*") as $filename) {
$subory = $dom->CreateElement("Subor");
$subory->setAttribute("NazevSouboru", false);
$Atribname = $subory->getAttributeNode("NazevSouboru");
$Atribname->value = $filename;
}
$data->appendChild($subory);
$dom->appendChild($data);
$dom->save("patchlist.xml");
ale aj tak to nefunguje :-(
Joker
Profil
tomiksk:
Ne, ještě $data->appendChild($subory); musí být uvnitř cyklu.

V každém cyklu se přece musí:
- Vytvořit nový element <Subor>
- Naplnit atributy
- Připojit k elementu <data>
tomiksk
Profil
Ano :-)) Dakujem Pekne :-))

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: