Zdravím všechny. Potřeboval bych poradit, jak na XML pomocí PHP.
Mám: PHP 5.3.6, Apache 2.2.15, Mandriva Linux 64bit
Pomocí následujících příkazů se mi podaří zapsat soubor XML:
$dom = new DOMDocument("1.0", "utf-8");
$element = $dom->createElement("root");
$dom->appendChild($element);
$dom->save("dokument.xml");
Dále se mi ale nedaří vytvořit vnořené značky ve značce root. Můžu jen přidat další na stejné úrovni jako je značka root.
K zápisu vnořených značek bych chtěl použít tyto příkazy:
$dom = new DOMDocument();
$dom->load("dokument.xml");
$Element = $dom->createElement("clanek", "text");
$Element->setAttribute("autor", false);
$AtribAutor = $Element->getAttributeNode("autor");
$AtribAutor->value = "jméno autora";
$Element->setAttribute("hodnoceni", false);
$AtribAutor = $Element->getAttributeNode("hodnoceni");
$AtribAutor->value = "0";
*** $Element = $dom->appendChild($Element); ***
$dom->save("dokument.xml");
Příkaz označený hvězdičkami bych potřeboval upravit tak, aby se nově vytvořená značka zapsala mezi párové značky <root></root>. Když se pokusím načíst XML dokument, který nemá žádnou kořenovou značku, načítání skončí chybou.
Zkoušel jsem pomocí metody DOMDocument::getElementsByTagName získat proměnnou, která by odkazovala na značku root a poté jsem použil metodu DOMNode::appendChild, abych nově vytvořeno značku zapsal mezi párové značky root, ale tento postup nefungoval:
$root = $dom->getElementsByTagName("root");
$root->appendChild($Element); // proměnná Element obsahuje značku vytvořenou v kódu výše
Může mi někdo pomoci? Co dělám špatně? Jde zapisovat vnořené značky i jiným způsobem?
Díky za rady.