[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание XML документа стокой или как DOM
cardina1
Я хочу создать XML документ с целю потом его пребразовывать в HTML с помощью XSLT (xsl шаблон лежит в файле). Следовательно каждый XML будет соотвествовать одной странице сайта.<br>Создать XML документ в скрипте можно двумя способами:<br>1 Создать строку и распарсить ее в DOM<br>
 
$xml_doc = domxml_open_mem("
<HTML>
    <node>Text</node>
    <node>Text</node>
</HTML>
");
 

2 Изначально создавать DOM объект:
 
$xml_doc = domxml_new_doc("1.0");
$html = $xml_doc->create_element("HTML");
$html = $xml_doc->append_child($html);
 
$node = $xml_doc->create_element("node");
$node = $html->append_child($node);
$text = $xml_doc->create_text_node("Text");
$text = $node->append_child($text);
 
$node = $xml_doc->create_element("node");
$node = $html->append_child($node);
$text = $xml_doc->create_text_node("Text");
$text = $node->append_child($text);
 

Я оцениваю эти способы так:
1-ый собособ нагляден (можно сразу понять как быдет выглядеть рузльтирующий XML, увидеть детские ошибки) и имеет малый объем кода. Это важно в том случае если необходимо генерировать достаточно много XML документов. Недостаток это сложность организации наследования (так как страницы часто имеют много общего хедеры, менюшки... это важно). Кроме этого, возможно, (я не уверен) скорость работы ниже чем у способа 2

У 2-ого способа все наоборот: громоздкий код, отсутвие наглядности, но визможность организовать наследование через наследование классов генераторов этого XML (т.е. допустим у нас есть класс-страница предок, которая генерирует общий для всех страниц XML и классы-страницы потомки которые добавляюьт что-то свое), и возможно выше скорость.

Наверно кто-то уже думал на эту тему, поделитесь, пожалуйста, своими мыслями.



Спустя 1 час, 5 минут, 21 секунда (28.12.2006 - 13:02) AlexBB написал(а):
Я думаю, выбор способа можно сделать только в контексте конкретной задачи.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.