Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Wrong Document Error (XML+PHP5)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
† Stratos †



Зарегистрирован: 27.08.2005
Сообщения: 19

СообщениеДобавлено: Вс Май 14 2006 16:08    Заголовок сообщения: Wrong Document Error (XML+PHP5) Ответить с цитатой

есть код
Код:
$dom_res1 = new DomDocument();
    $dom_res1->load($file_asi1);

    if(!@file_exists($file_asi2)) {
        $dom_res2 = new DomDocument();
        $dom_res2->appendChild($dom_res2->createElement("questestinterop"));
    } else {
        $dom_res2 = new DomDocument();
        $dom_res2->load($file_asi2);
    }

    $parent=$dom_res1;
    $e_section=find_element($parent,'section','ident',$section_id);

    $e_section2=$e_section->ownerDocument;
    $root2=$dom_res2;
    $parent2=find_element($root2,'questestinterop');//находит элемент 'questestinterop' и делает переменную объектом DOMElement

    $temp=$dom_res2->createElement('a1');
try {
    $copy = $dom_res2->importNode($e_section,1);
    echo "yo: ".$copy->nodeName;
    $e_section2=$parent2->insertBefore($e_section, $copy);
} catch (Exception $e) {
    echo "<pre>";
    echo $e; die();
}
print_r($e_section2);die();


короче клонирование удачно происходит, но исключение все равно "вылетает".

подскажите плиз где тут не так?

=======================================
может будет попроще, если я скажу, что код был написан под domxml. и я его переписываю под dom стандарт.

код был следующий (работал корректно)

Код:
$dom_res1=@domxml_open_file($file_asi1);
    if(!file_exists($file_asi2))
    {
        $dom_res2 = domxml_new_doc("1.0");
        $dom_res2->append_child($dom_res2->create_element("questestinterop"));
    }
    else
    {
        $dom_res2=@domxml_open_file($file_asi2);
    }
    $root=$dom_res1->root();
    $parent=$root;
    $e_ass=find_element($root,'assessment','ident',$test_id);
       
    $e_ass2=$e_ass->owner_document();
    $root2=$dom_res2->root();
    $parent=$root2;

    $temp=$dom_res2->create_element('1');
    $e_ass2=$parent->insert_before ( $e_ass, $temp);
    $e_ass2=$parent->append_child($e_ass2);
    $temp->unlink_node();
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
† Stratos †



Зарегистрирован: 27.08.2005
Сообщения: 19

СообщениеДобавлено: Вт Май 16 2006 08:05    Заголовок сообщения: Ответить с цитатой

не думал, что мне здесь не помогут.

но проблема решена.

Код:

    $dom_res1 = new DomDocument();
    $dom_res1->load($file_asi1);
    if(!@file_exists($file_asi2)) {
        $dom_res2 = new DomDocument();
        $dom_res2->appendChild($dom_res2->createElement("questestinterop"));
    } else {
        $dom_res2 = new DomDocument();
        $dom_res2->load($file_asi2);
    }

    $parent=$dom_res1;
    $e_section=find_element($parent,'section','ident',$section_id);

    $e_section2=$e_section->ownerDocument;

    $root2=$dom_res2;
    $parent=find_element($root2,'questestinterop');

    $temp=$dom_res2->createElement('a1');
    $temp=$parent->appendChild($temp);
    $copy_from_dom1_section = $dom_res2->importNode($e_section, 1);
    $new_section = $parent->insertBefore($copy_from_dom1_section, $temp);
    $new_section = $parent->appendChild($new_section);
    $temp->parentNode->removeChild($temp);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...